下標(biāo)可以定義在類褪猛、結(jié)構(gòu)體和枚舉中,是訪問集合羹饰,列表或序列中元素的快捷方式伊滋√既矗可以使用下標(biāo)的索引,設(shè)置和獲取值笑旺,而不需要再調(diào)用對應(yīng)的存取方法
一個類型可以定義多個下標(biāo)昼浦,通過不同索引類型進(jìn)行重載。下標(biāo)不限于一維筒主,你可以定義具有多個入?yún)⒌南聵?biāo)滿足自定義類型的需求
下標(biāo)允許你通過在實例名稱后面的方括號中傳入一個或者多個索引值來對實例進(jìn)行存取关噪。語法類似于實例方法語法和計算型屬性語法的混合。與定義實例方法類似乌妙,定義下標(biāo)使用 subscript關(guān)鍵字使兔,指定一個或多個輸入?yún)?shù)和返回類型;與實例方法不同的是冠胯,下標(biāo)可以設(shè)定為讀寫或只讀火诸。這種行為由 getter 和 setter 實現(xiàn)
subscript(index: Int) -> Int {
get {
// 返回一個適當(dāng)?shù)?Int 類型的值
}
set(newValue) {
// 執(zhí)行適當(dāng)?shù)馁x值操作
}
}
newValue的類型和下標(biāo)的返回類型相同。如同計算型屬性荠察,可以不指定 setter 的參數(shù)(newValue)置蜀。如果不指定參數(shù),setter 會提供一個名為newValue的默認(rèn)參數(shù)悉盆。
如同只讀計算型屬性盯荤,可以省略只讀下標(biāo)的get關(guān)鍵字:
subscript(index: Int) -> Int {
// 返回一個適當(dāng)?shù)?Int 類型的值
}