2 回答

TA貢獻(xiàn)1893條經(jīng)驗(yàn) 獲得超10個(gè)贊
在復(fù)合文字中,可以選擇提供鍵(數(shù)組和切片文字時(shí)的索引)。
對(duì)于數(shù)組和切片文字,以下規(guī)則適用:
每個(gè)元素都有一個(gè)關(guān)聯(lián)的整數(shù)索引來(lái)標(biāo)記它在數(shù)組中的位置。
帶有鍵的元素使用鍵作為索引;鍵必須是一個(gè)常量整數(shù)表達(dá)式。
沒(méi)有鍵的元素使用前一個(gè)元素的索引加一。如果第一個(gè)元素沒(méi)有鍵,則其索引為零。
Elements 獲取未指定值的元素類(lèi)型的零值。
您可以使用它來(lái):
如果數(shù)組/切片有許多零值和只有幾個(gè)非零值,則更緊湊地初始化數(shù)組和切片
枚舉元素時(shí)跳過(guò)(“跳過(guò)”)連續(xù)部分,并且跳過(guò)的元素將使用零值進(jìn)行初始化
指定前幾個(gè)元素,并仍然指定您希望數(shù)組/切片具有的長(zhǎng)度(最大索引 + 1):
a := []int{10, 20, 30, 99:0} // Specify first 3 elements and set length to 100
該規(guī)范還包含一個(gè)示例:創(chuàng)建一個(gè)數(shù)組來(lái)判斷一個(gè)字符是否是元音。這是初始化數(shù)組的一種非常緊湊和健談的方式:
// vowels[ch] is true if ch is a vowel vowels := [128]bool{'a': true, 'e': true, 'i': true, 'o': true, 'u': true, 'y': true}
另一個(gè)例子:讓我們創(chuàng)建一個(gè)切片來(lái)判斷一天是否是周末;星期一為 0,星期二為 1,……星期日為 6:
weekend := []bool{5: true, 6: true} // The rest will be false
或者更好的是,您甚至可以省略第二個(gè)索引 ( 6
),因?yàn)樗请[式的6
(前一個(gè) +1):
weekend := []bool{5: true, true} // The rest will be false

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超4個(gè)贊
如果你的數(shù)組索引是稀疏的,它比做{1,0,0,0,0,2,0,0,0,0,3}
等要短,而且比多個(gè)賦值線短,所以我猜這就是用例。
我以前從未見(jiàn)過(guò)在任何地方使用過(guò)這種語(yǔ)法。
- 2 回答
- 0 關(guān)注
- 231 瀏覽
添加回答
舉報(bào)