原始碼中有這么一句,這個函式要求回傳的是[]cli.Command,cli.Command型別的切片,這個地方直接使用字面值初始化了一個切片回傳去了
return []cli.Command{command}
陣列的字面值初始化,一般是需要指定陣列的大小,可以使用...三個點來代替大小,根據后面初始化的個數來計算,下面就是字面值初始化一個陣列
arr := [...]int{1, 2, 3} for i, j := range arr { fmt.Println(i, j) }
切片和陣列很類似,并且切片的底層也是參考了一個陣列,切片的字面值初始化直接不需要三個點就可以,下面的切片存的是自定義的User型別
type User struct { Name string} user := User{Name: "taoshihan"} mySlice := []User{user} for i, user := range mySlice { fmt.Println(i, user.Name) }
完整代碼:
package mainimport "fmt"type Command struct { Name string}func main() { //初始化一個陣列 arr := [...]int{1, 2, 3} for i, j := range arr { fmt.Println(i, j) } //初始化一個切片,這個和原始碼中的就差不多了 command := Command{Name: "taoshihan"} commands := []Command{command} for i, command := range commands { fmt.Println(i, command.Name) }}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/63340.html
標籤:Go
上一篇:Go - 回圈
下一篇:Go - Map 集合
