Swift類
在 Swift 中類是建立靈活的構建塊。類似於常量,變量和函數,用戶可以定義的類的屬性和方法。Swift給我們提供了聲明類,而無需用戶創建接口和實現文件的功能。Swift 允許我們創建類作為單個文件和外部接口,將默認在類一次初始化來創建。
使用類的好處
-
繼承獲得一個類的屬性到其他類
-
類型轉換使用戶能夠在運行時檢查類的類型
-
初始化器需要處理釋放內存資源
-
引用計數允許類實例有一個以上的參考
類和結構的共同特征
-
屬性被定義為存儲值
-
下標被定義為提供訪問值
-
方法被初始化來改善功能
-
初始狀態是由初始化函數定義
-
功能被擴大,超出默認值
-
確認協議功能標準
語法
Class classname { Definition 1 Definition 2 --- Definition N }
定義類
class student{ var studname: String var mark: Int var mark2: Int }
創建一個實例的語法:
let studrecord = student()
示例
class MarksStruct { var mark: Int init(mark: Int) { self.mark = mark } } class studentMarks { var mark = 300 } let marks = studentMarks() println("Mark is \(marks.mark)")
當我們使用 playground 運行上麵的程序,我們得到以下結果
Mark is 300
訪問類屬性作為引用類型
類屬性可使用 '.' 語法來訪問。屬性名稱由 "." 分離在實例名後。
class MarksStruct { var mark: Int init(mark: Int) { self.mark = mark } } class studentMarks { var mark1 = 300 var mark2 = 400 var mark3 = 900 } let marks = studentMarks() println("Mark1 is \(marks.mark1)") println("Mark2 is \(marks.mark2)") println("Mark3 is \(marks.mark3)")
當我們使用 playground 運行上麵的程序,得到以下結果
Mark1 is 300 Mark2 is 400 Mark3 is 900
類標識符
在 Swift 引用多個常量和變量指向的單個實例。要了解常量和變量指向一個特定的類實例標識操作符的使用。 類實例總是通過引用傳遞。在類NSString,NSArray 和 NSDictionary 實例始終分配作為參考傳遞到現有的實例,而不是使用一個副本。
等同運算符 | 不相同操算符 |
使用的操作符是 (===) | 使用的操作符是 (!==) |
當兩個常量或變量指向同一個實例返回true | 當兩個常數或變量指向一個不同的實例返回true |
class SampleClass: Equatable { let myProperty: String init(s: String) { myProperty = s } } func ==(lhs: SampleClass, rhs: SampleClass) -> Bool { return lhs.myProperty == rhs.myProperty } let spClass1 = SampleClass(s: "Hello") let spClass2 = SampleClass(s: "Hello") spClass1 === spClass2 // false println("\(spClass1)") spClass1 !== spClass2 // true println("\(spClass2)")
當我們使用 playground 運行上麵的程序,得到以下結果
main.SampleClass main.SampleClass