[Go] gocron源码阅读-go语言中数组和切片的字面值初始化语法
源码中有这么一句,这个函数要求返回的是[]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) } }
十年开发经验程序员,离职全心创业中,历时三年开发出的产品《唯一客服系统》
一款基于Golang+Vue开发的在线客服系统,软件著作权编号:2021SR1462600。一套可私有化部署的网站在线客服系统,编译后的二进制文件可直接使用无需搭开发环境,下载zip解压即可,仅依赖MySQL数据库,是一个开箱即用的全渠道在线客服系统,致力于帮助广大开发者/公司快速部署整合私有化客服功能。
开源地址:唯一客服(开源学习版)
官网地址:唯一客服官网