下標指令碼可以定義在類(class)、結構體(struct)、列舉(enumeration)這些目標中,可以認為是訪問集合,列表或序列的快捷方式,使用下標指令碼的索引設定和獲取值,不需要再呼叫例項的特定的賦值和訪問方法。對於同乙個目標可以定義多個下標指令碼,通過索引值型別的不同來進行過載,下標指令碼不限於單個緯度,你可以定義多個入參的下標指令碼滿足自定義型別的需求。
下標指令碼允許你通過在例項後面的方括號中傳入乙個或多個的索引值來對例項進行訪問和賦值。語法類似於例項方法和計算屬性的混合。與定義例項方法類似,定義下標指令碼使用subscript關鍵字,顯示宣告入參(乙個或多個)和返回型別。與例項方法不同的是下標指令碼可以設定為讀寫或唯讀。這種方式又有點像計算屬性的getter和setter:
subscript(index:int)->intset(newvalue)
}
newvalue的型別必須和下標指令碼定義的返回型別相同。與計算型屬性相同的是set的入參宣告newvalue就算不寫,在set**塊中依然可以使用預設的newvalue這個變數來訪問新賦的值。與唯讀計算屬性一樣,可以直接將原本應該寫在get**塊中的**寫在subscript中:
subscript(index:int)->int
根據使用場景不同下標指令碼也具有不同的含義。通常下標指令碼是用來訪問集合,列表或序列中元素的快捷方式就。可以在你自己特定的類或結構體中自由的實現下標指令碼來提供合適的功能。
例如,swift的字典(dictionary)實現了通過下標指令碼來對其實例中存放的值進行訪問操作。
var numberoflegs = ["spider":8, "ant":6, "cat":4]numberoflegs["bird"] = 4 //存值
下標指令碼允許任意數量的入參索引,並且每個入參索引型別沒有限制。下標指令碼的返回值也可以是任意型別。
Swift 下標指令碼
playground noun a place where people can play import uikit var str hello,playground 下標指令碼語法 下標指令碼允許你通過在例項後面的方括號中傳入乙個或者多個的索引值來對例項進行訪問和賦值。語法類似於例項方法和計算型屬...
swift 下標指令碼
下標指令碼 可以定義在類 class 結構體 structure 和列舉 enumeration 這些目標中,可以讓這些型別的例項通過快速訪問屬性和方法.subscript index int int set newvalue 通常下標指令碼是用來訪問集合 collection 列表 list 或序...
Swift之下標指令碼
下標指令碼 可以定義在類 class 結構體 structure 和列舉 enumeration 這些目標中,可以認為是訪問集合 collection 列表 list 或序列 sequence的快捷方式,使用下標指令碼的索引設定和獲取值,不需要再呼叫例項的特定的賦值和訪問方法。舉例來說,用下標指令碼...