Swift回憶錄下標 subscript

2021-08-01 20:48:09 字數 924 閱讀 5818

下標可以定義在類、結構體和列舉中,是訪問集合,列表或序列中元素的快捷方式。可以使用下標的索引,設定和獲取值,而不需要再呼叫對應的訪問方法。

下標允許你通過在例項名稱後面的方括號中傳入乙個或者多個索引值來對例項進行訪問

語法類似於例項方法語法和計算型屬性語法的混合。

定義下標使用subscript關鍵字,指定乙個或多個輸入引數和返回型別;

subscript(index: int) -> int 

set(newvalue)

}

newvalue的型別和下標的返回型別相同。如同計算型屬性,可以不指定 setter 的引數(newvalue)。如果不指定引數,setter 會提供乙個名為newvalue的預設引數。

subscript(index: int) -> int
如同唯讀計算型屬性,可以省略唯讀下標的get關鍵字

struct person

}let person = person(age: 24)

//使用

print(person[10]) //

34

下標的確切含義取決於使用場景。

下標通常作為訪問集合,列表或序列中元素的快捷方式。

你可以針對自己特定的類或結構體的功能來自由地以最恰當的方式實現下標。

下標可以接受任意數量的入參,並且這些入參可以是任意型別。下標的返回值也可以是任意型別。下標可以使用變數引數和可變引數,但不能使用輸入輸出引數,也不能給引數設定預設值。

乙個類或結構體可以根據自身需要提供多個下標實現,使用下標時將通過入參的數量和型別進行區分,自動匹配合適的下標,這就是下標的過載。

Swift回憶錄 屬性

儲存屬性 儲存在特定類或結構體例項裡的乙個常量或變數 延遲儲存屬性 當第一次被呼叫的時候才會計算其初始值的屬性。在屬性宣告前使用 lazy 來標示乙個延遲儲存屬性。例 class score class student延遲儲存屬性必須宣告為變數 var 因為屬性的初始值可能在例項構造完成之後才會得到...

Swift回憶錄 閉包

swift中的閉包相當於swift中的匿名函式。閉包不帶標籤,即沒有外部引數。對於已經確定閉包的函式型別時,由於其所有的型別都可以被正確推斷,因此其返回箭頭 和圍繞在引數周圍的括號可以被省略 var closure int,int int var value closure 1,2 單行表示式閉包可...

技工回憶錄

自己都不知道說自己什麼好了。發一下去年12月寫的東西,依然歷歷在目 這兩天心情非常低沉,對什麼都沒興趣,好像當年呀,熟悉的感覺,不一樣的環境。感覺自己不喜歡工作的環境,感覺現在上班時在勉強自己做事。對自己也非常不滿,從我的角度來看,我現在是一事無成。高中時常說不習慣老師和家長逼著學,所以在學校總是很...