1).結構體定義和結構體成員訪問
定義語法:
結構體類型 結構體名 {
?? 成員屬性類型 屬性名 : 屬性類型
??? ...
}
例子:
struct Rect {
var width : Double
var height : Double
}
成員變量調用例子:
struct Rect {
?????? var width : Double = 10
?????? var height : Double = 10
}
var rect1 = Rect();
rect1.width = 11;
2).結構體構造器
struct Rect {
? ? var width : Double
??? var height : Double
}
var rect1 = Rect(width: 10, height: 10)?
//結構體逐一成員構造器
//在沒有額外聲明初始化方法時,swift會默認提供這個方法初始化,swift要求結構體或者類的成員變量,在初始化時給定初值
3).結構體中定義成員方法
struct Rect {
????? var width : Double
????? var height : Double
???? func getWidth() -> Double {
???????? return width? //? return self.width?? //成員方法可以訪問成員屬性
???? }
}
var rect1 = Rect(width: 10, height: 10)
rect1.getWidth()? //成員方法依賴于對象
4).結構體是值類型
struct Rect {
? ? var width : Double = 19
? ? var height : Double = 10
}
var rect1 = Rect()
var rect2 = rect1
rect1.width = 100
print(rect2.width)??? //rect2的值沒有改變
可以看出? rect1跟rect2是兩個不同的實例,但是內容一致!并非是兩個引用,指向了同一塊內存區域
5).類的基本定義
類的聲明跟結構體基本一致,關鍵字改為Class即可,成員訪問也是通過“點語法”
但是類無逐一成員構造器這個默認方法
類不同于結構體的值類型,類是引用類型!
swift中提供恒等運算符“ ===”來判斷兩個類對象是否指向同一個實例? //? “!==”