Swift中文教程3

2021-06-22 08:46:11 字數 1505 閱讀 9106

呼叫方法

swift中,函式的引數名稱只能在函式內部使用,但方法的引數名稱除了在內部使用外還可以在外部使用(第乙個引數除外),例如:

注意swift支援為方法引數取別名:在上面的**裡,numberoftimes面向外部,times面向內部。

?的另一種用途

使用可空值時,?可以出現在方法、屬性或下標前面。如果?前的值為nil,那麼?後面的表示式會被忽略,而原表示式直接返回nil,例如:

當optionalsquare為nil時,sidelength屬性呼叫會被忽略。

列舉和結構

列舉

使用enum建立列舉——注意swift的列舉可以關聯方法:

使用toraw和fromraw在原始(raw)數值和列舉值之間進行轉換:

注意列舉中的成員值(member value)是實際的值(actual value),和原始值(raw value)沒有必然關聯。

一些情況下列舉不存在有意義的原始值,這時可以直接忽略原始值:

除了可以關聯方法,列舉還支援在其成員上關聯值,同一列舉的不同成員可以有不同的關聯的值:

結構

swift使用struct關鍵字建立結構。結構支援構造器和方法這些類的特性。結構和類的最大區別在於:結構的例項按值傳遞(passed by value),而類的例項按引用傳遞(passed by reference)。

協議(protocol)和擴充套件(extension) 協議

swift使用protocol定義協議:

型別、列舉和結構都可以實現(adopt)協議:

擴充套件

擴充套件用於在已有的型別上增加新的功能(比如新的方法或屬性),swift使用extension宣告擴充套件:

泛型(generics)

swift使用<>來宣告泛型函式或泛型型別:

swift也支援在類、列舉和結構中使用泛型:

有時需要對泛型做一些需求(requirements),比如需求某個泛型型別實現某個介面或繼承自某個特定型別、兩個泛型型別屬於同乙個型別等等,swift通過where描述這些需求:

Swift中文教程1

swift語言概覽 基本概念 注 這一節的 源自the swift programming language中的a swift tour。hello,world 類似於指令碼語言,下面的 即是乙個完整的swift程式。swift使用var宣告變數,let宣告常量。型別推導 swift支援型別推導 t...

Swift中文教程 基礎

隱藏 2注釋3分號4整數 5浮點數 6型別安全及型別推斷 7數字字面量 literals 8數字型別轉換 9型別別名 aliases 10布林值 11元組 12可選量 13斷言 assertions 常量和變數把乙個名字 比如maximumnumberofloginattempts或者welcome...

Swift中文教程(十二) 下標

進行索引。你可以為乙個型別定義多個下標,以及適當的下標過載用來根據傳遞給下標的索引來設定相應的值。下標不僅可以定義為一維的,還可以根據需要定義為多維的,多個引數的。1 下標語法 和方法語法和屬性語法類似,通過使用subscript關鍵定義,乙個或多個輸入引數以及乙個返回值。不同於例項方法的是,下標可...