下标
說起下標的作用對于數組和字典來說并不用陌生,但在Swift中所有的類型都支持下標。用下標可以很方便的訪問對象的具體值。
語法格式
使用subscript關鍵字定義下標 subscript(形參列表)->下標返回值類型 {get{//getter部分執行體,該部分必須有返回值 } [set(形參名) { //setter部分執行體,該部分一定不能有返回值 }] }set部分:set部分可定義一段執行性代碼,這段代碼用于對下標賦值。Swift允許定義只讀下標,因此可以省略set部分,set部分形參代表了通過下標賦值時傳入的新值,當然可以省略set部分形參,會提供隱式的形參名:newValue。
get部分:這段代碼將返回下標的值。
注意:定義下標時只能省略set部分,不能省略get部分。Swift只支持只讀下標,并不支持“只寫下標”
struct Rect{var x:Intvar y:Intvar width:Intvar height:Intsubscript(idx:Int )->Int{get {switch(idx){case 0:return self.xcase 1:return self.ycase 2:return self.widthcase 3:return self.heightdefault:print("不支持")return 0}}set{switch(idx){case 0:self.x=newValuecase 1:self.y=newValuecase 2:self.width=newValuecase 3:self.height=newValuedefault:print("不支持該索引值")}}}} }var rect=Rect(x:20,y:12,width:200,height:300)rect[0]=40rect[1]=67print("\(rect[0],rect[1])")下標重載
一個類型可以包括多個下標,只要多個下標的形參列表不同(形參數量或者形參類型不同)或者返回值類型不同即可,這種功能成為下標重載。
同一個類型可以定義多個下標,Swift允許通過下標參數列表或返回值類型來區分不同的下標,同一個類型中定義多個不同的下標稱為下標重載。
總結
- 上一篇: delphi 怎么获取工程版本号
- 下一篇: channelartlist标签不能调用