[Go] gocron源码阅读-go语言中数组和切片的字面值初始化语法
程序员文章站
2022-03-25 21:40:57
源码中有这么一句,这个函数要求返回的是[]cli.Command,cli.Command类型的切片,这个地方直接使用字面值初始化了一个切片返回去了 数组的字面值初始化,一般是需要指定数组的大小,可以使用...三个点来代替大小,根据后面初始化的个数来计算,下面就是字面值初始化一个数组 切片和数组很类似 ......
源码中有这么一句,这个函数要求返回的是[]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 main import "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) } }