Swift—下標指令碼(Subscripts),swiftsubscripts

來源:互聯網
上載者:User

Swift—下標指令碼(Subscripts),swiftsubscripts

  下標指令碼可以定義在類(Class)、結構體(Struct)、枚舉(enumeration)這些目標中,可以認為是訪問集合,列表或序列的捷徑,使用下標指令碼的索引設定和擷取值,不需要再調用執行個體的特定的賦值和存取方法。對於同一個目標可以定義多個下標指令碼,通過索引實值型別的不同來進行重載,下標指令碼不限於單個緯度,你可以定義多個入參的下標指令碼滿足自訂類型的需求。

1.下標指令碼的文法

  下標指令碼允許你通過在執行個體後面的方括弧中傳入一個或多個的索引值來對執行個體進行訪問和賦值。文法類似於執行個體方法和計算屬性的混合。與定義執行個體方法類似,定義下標指令碼使用subscript關鍵字,顯示聲明入參(一個或多個)和傳回型別。與執行個體方法不同的是下標指令碼可以設定為讀寫或唯讀。這種方式又有點像計算屬性的getter和setter:

subscript(index:Int)->Int {        get {            //返回與入參匹配的int類型的值        }        set(newValue) {            //執行賦值參數        }    }

   newValue的類型必須和下標指令碼定義的傳回型別相同。與計算型屬性相同的是set的入參聲明newValue就算不寫,在set代碼塊中依然可以使用預設的newValue這個變數來訪問新賦的值。與唯讀計算屬性一樣,可以直接將原本應該寫在get代碼塊中的代碼寫在subscript中:

subscript(index:Int)->Int {        //返回與入參匹配的int類型的值    }
 2.下標指令碼用法

  根據使用情境不同下標指令碼也具有不同的含義。通常下標指令碼是用來訪問集合,列表或序列中元素的捷徑就。可以在你自己特定的類或結構體中自由的實現下標指令碼來提供合適的功能。

  例如,Swift的字典(Dictionary)實現了通過下標指令碼來對其執行個體中存放的值進行存取操作。

var numberOfLegs = ["spider":8, "ant":6, "cat":4]numberOfLegs["bird"] = 4 //存值
 3.下標指令碼選項

  下標指令碼允許任意數量的入參索引,並且每個入參索引類型沒有限制。下標指令碼的傳回值也可以是任意類型。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.