前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[Go] gocron源码阅读-go语言中数组和切片的字面值初始化语法

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

作者头像
唯一Chat
发布2019-11-18 13:32:59
3740
发布2019-11-18 13:32:59
举报
文章被收录于专栏:陶士涵的菜地陶士涵的菜地

源码中有这么一句,这个函数要求返回的是[]cli.Command,cli.Command类型的切片,这个地方直接使用字面值初始化了一个切片返回去了

代码语言:javascript
复制
return []cli.Command{command}

数组的字面值初始化,一般是需要指定数组的大小,可以使用...三个点来代替大小,根据后面初始化的个数来计算,下面就是字面值初始化一个数组

代码语言:javascript
复制
    arr := [...]int{1, 2, 3}
    for i, j := range arr {
        fmt.Println(i, j)
    }

切片和数组很类似,并且切片的底层也是引用了一个数组,切片的字面值初始化直接不需要三个点就可以,下面的切片存的是自定义的User类型

代码语言:javascript
复制
type User struct {
    Name string
}
    user := User{Name: "taoshihan"}
    mySlice := []User{user}
    for i, user := range mySlice {
        fmt.Println(i, user.Name)
    }

完整代码:

代码语言:javascript
复制
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)
    }
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-11-15 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档