亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

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

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

Go
守著一只汪 2023-08-21 14:32:55
我是 golang 新手,有一個基本問題。我從網絡上的示例中獲取了以下代碼func (d Direction) String() string {     return [...]string{"North", "East", "South", "West"}[d] }我很困惑[d]方法體中的作用是什么?
查看完整描述

3 回答

?
呼啦一陣風

TA貢獻1802條經驗 獲得超6個贊

[d]只是一個索引表達式,它對前面使用復合文字創建的數組進行索引。

這:

[...]string{"North",?"East",?"South",?"West"}

string是一個數組復合文字,它使用列出的元素創建一個元素類型的數組,并隨后[d]索引該數組。該方法返回這個 4 大小數組的d第一個元素。

請注意,這...意味著我們希望編譯器自動確定數組大小:

該表示法...指定數組長度等于最大元素索引加一。

查看完整回答
反對 回復 2023-08-21
?
大話西游666

TA貢獻1817條經驗 獲得超14個贊

這部分聲明了一個包含四個字符串的數組文字:

[...]string{"North", "East", "South", "West"}

d然后這部分從數組中獲取第th 個元素:

[...]string{"North", "East", "South", "West"}[d]

Direction必須要int讓它發揮作用。


查看完整回答
反對 回復 2023-08-21
?
幕布斯6054654

TA貢獻1876條經驗 獲得超7個贊

提到[d] 是一個索引表達式。


以下只是一個查看輸出的工作示例


package main


import "fmt"


type Direction int


func (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)

}

輸出:


North

West

更清楚地說,


return [...]string{"North", "East", "South", "West"}[d]


可以展開為


func (d Direction) String() string {

    var directions = [...]string{"North", "East", "South", "West"}

    return directions[d]

}


查看完整回答
反對 回復 2023-08-21
  • 3 回答
  • 0 關注
  • 158 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號