当前位置: 移动技术网 > IT编程>脚本编程>Go语言 > [Go] gocron源码阅读-go语言中数组和切片的字面值初始化语法

[Go] gocron源码阅读-go语言中数组和切片的字面值初始化语法

2019年11月16日  | 移动技术网IT编程  | 我要评论
源码中有这么一句,这个函数要求返回的是[]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)
    }
}

 

如您对本文有疑问或者有任何想说的,请 点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网