此代碼來自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 初學(xué)者,我理解一切,除了這部分:if len(c.Args()) > 0 { name = c.Args()[0]}那個塊說的是什么?為什么有必要?
1 回答

蝴蝶不菲
TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超4個贊
該函數(shù)Args
返回一個對象Args
,它是一個字符串切片(請參閱context.go
):
type Args []string
要獲取該切片 ( [0]
)的第一個元素,必須事先檢查它是否不為空,從而進(jìn)行len
測試。如果不這樣做并且切片恰好是空的,則會出現(xiàn)index out of range
運(yùn)行時錯誤并且程序會出現(xiàn)混亂。
- 1 回答
- 0 關(guān)注
- 168 瀏覽
添加回答
舉報(bào)
0/150
提交
取消