pan*_*aya 0 arrays go composite-literals
我是 golang 的新手,有一个基本问题。我从网上的一个例子中提取了以下代码
func (d Direction) String() string { return [...]string{"North", "East", "South", "West"}[d] }
我很困惑[d]方法体中的作用是什么?
[d]
icz*_*cza 5
[d]只是一个索引表达式,它索引创建的数组,该数组前面有一个复合文字。
这个:
[...]string{"North", "East", "South", "West"}
是一个数组复合字面量,它string使用列出的元素创建一个元素类型的数组,并[d]为该数组建立后续索引。该方法返回这个 4 大小数组的d第 th 个元素。
string
d
请注意,...我们希望编译器自动确定数组大小的意思是:
...
该符号...指定数组长度等于最大元素索引加一。
Go 中的数组不要与slice 混淆。有关数组和切片的详细介绍,请阅读官方博客文章:
Go 博客:Go Slices:用法和内部结构
Go 博客:数组、切片(和字符串):“追加”的机制
归档时间:
6 年,2 月 前
查看次数:
97 次
最近记录: