此代码来自cliGo 包:https : //github.com/codegangsta/clipackage mainimport ( "github.com/codegangsta/cli" "os")func main() { app := cli.NewApp() app.Name = "greet" app.Usage = "fight the loneliness!" app.Flags = []cli.Flag{ cli.StringFlag{ Name: "lang, l", Value: "english", Usage: "language for the greeting", }, } app.Action = func(c *cli.Context) { name := "someone" if len(c.Args()) > 0 { name = c.Args()[0] } if c.String("lang") == "spanish" { println("Hola", name) } else { println("Hello", name) } } app.Run(os.Args)}我是 Go 初学者,我理解一切,除了这部分:if len(c.Args()) > 0 { name = c.Args()[0]}那个块说的是什么?为什么有必要?
1 回答
蝴蝶不菲
TA贡献1810条经验 获得超4个赞
该函数Args
返回一个对象Args
,它是一个字符串切片(请参阅context.go
):
type Args []string
要获取该切片 ( [0]
)的第一个元素,必须事先检查它是否不为空,从而进行len
测试。如果不这样做并且切片恰好是空的,则会出现index out of range
运行时错误并且程序会出现混乱。
- 1 回答
- 0 关注
- 149 浏览
添加回答
举报
0/150
提交
取消