Golang,以下内容是做什么的[]

我是 golang 新手,有一个基本问题。我从网络上的示例中获取了以下代码

func (d Direction) String() string { 
   return [...]string{"North", "East", "South", "West"}[d]
}

我很困惑[d]方法体中的作用是什么?


守着一只汪
浏览 114回答 3
3回答

呼啦一阵风

[d]只是一个索引表达式,它对前面使用复合文字创建的数组进行索引。这:[...]string{"North", "East", "South", "West"}string是一个数组复合文字,它使用列出的元素创建一个元素类型的数组,并随后[d]索引该数组。该方法返回这个 4 大小数组的d第一个元素。请注意,这...意味着我们希望编译器自动确定数组大小:该表示法...指定数组长度等于最大元素索引加一。

大话西游666

这部分声明了一个包含四个字符串的数组文字:[...]string{"North", "East", "South", "West"}d然后这部分从数组中获取第th 个元素:[...]string{"North", "East", "South", "West"}[d]Direction必须要int让它发挥作用。

幕布斯6054654

提到[d] 是一个索引表达式。以下只是一个查看输出的工作示例package mainimport "fmt"type Direction intfunc (d Direction) String() string {    return [...]string{"North", "East", "South", "West"}[d]}func main() {    n:=Direction(0)  // d=0    fmt.Println(n)    w:=Direction(3)  // d=3    fmt.Println(w)}输出:NorthWest更清楚地说,return [...]string{"North", "East", "South", "West"}[d]可以展开为func (d Direction) String() string {    var directions = [...]string{"North", "East", "South", "West"}    return directions[d]}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go