IOS_Swift_Subscripts下標指令碼

來源:互聯網
上載者:User

標籤:

本博文為子墨原創,轉載請註明出處! http://blog.csdn.net/zimo2013/article/details/50177691
1.概述

下標指令碼subscript,可以定義在類(Class)、結構體(structure)和枚舉(enumeration)中,是訪問集合(collection),列表(list)或序列(sequence)中元素的捷徑。可以使用下標指令碼的索引設定和擷取值,不需要再調用對應的存取方法。舉例來說,用下標指令碼訪問一個Array執行個體中的元素可以寫作someArray[index],訪問Dictionary執行個體中的元素可以寫作someDictionary[key]。

//Dictionarypublic subscript (position: DictionaryIndex<Key, Value>) -> (Key, Value) { get }public subscript (key: Key) -> Value?
一個類型可以定義多個下標指令碼,通過不同索引類型進行重載。下標指令碼不限於一維,你可以定義具有多個入參的下標指令碼滿足自訂類型的需求。
subscript(m:Int)->Intsubscript(m:Int, n:Int)->Intsubscript(name:String)->String

下標指令碼允許你通過在執行個體名稱後面的方括弧中傳入一個或者多個索引值來對執行個體進行存取。文法類似於執行個體方法文法和計算型屬性文法的混合。與定義執行個體方法類似,定義下標指令碼使用subscript關鍵字,指定一個或多個入參和傳回型別。與執行個體方法不同的是,下標指令碼可以設定為讀寫或唯讀。這種行為由 getter 和 setter 實現,有點類似計算型屬性:

subscript(index: Int) -> Int {    get {      // 返回一個適當的 Int 類型的值    }    set(newValue) {      // 執行適當的賦值操作    }}


2.代碼

enum Colors:Int{    case RED=1    case BLUE=2        subscript(m:Int)->Int{        return self.rawValue*m    }        subscript(m:Int, n:Int)->Int{        return self.rawValue*m*n    }    subscript(name:String)->String{        return "name:\(name) value=\(self.rawValue)"    }}print("subscript--->\(Colors.RED[2])")print("subscript (m:Int, n:Int)--->\(Colors.BLUE[2,3])")print("subscript name--->\(Colors.BLUE["name"])")

IOS_Swift_Subscripts下標指令碼

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.