go - golang的(切片)变量初始化程序中的[...]是什么意思?
问题描述
我正在浏览标准库,特别是https://golang.org/src/html/template/context.go,我遇到了这段代码,它的任务是制作之前定义的 uint8 枚举的字符串表示。
var stateNames = [...]string{
stateText: "stateText",
stateTag: "stateTag",
//... many more elided
stateCSSBlockCmt: "stateCSSBlockCmt",
stateCSSLineCmt: "stateCSSLineCmt",
stateError: "stateError",
}
我对初始化程序的 [...] 语法很感兴趣。var stateNames = []string{}
在那种语法中,有什么东西不仅仅意味着简单吗?
解决方案
好的,正如我应该做的那样,我把它放在操场上,初始化变量,然后调用fmt.Printf("%T", stateNames)
,得到[25]string
https://play.golang.org/p/3k-WiI8Jh9K
事实证明,这定义了一个数组,而不是一个切片,并且数组被初始化,长度自动设置为定义的项目数。整洁的!
推荐阅读
- android - 您将如何在 Utils/Helper 类中使用 AsyncTasks
- c# - 在视图模型中显示模型变量
- python - Colab 到 Google 云端硬盘:如何仅将新文件复制到云端硬盘?
- sql - 获取周开始日期
- .net-core - ADFS 2016 代流:无法获取任何用户信息
- python - npm install -g truffle install visual studiosVsCode
- php - Laravel 与外键条件的关系(在关系上切换外键)
- ruby-on-rails - 如何将查询保存到小部件对象中
- navbar - 响应式下拉导航栏
- python - 混合类型映射的更强类型注释