1).結(jié)構(gòu)體定義和結(jié)構(gòu)體成員訪問
定義語法:
結(jié)構(gòu)體類型 結(jié)構(gòu)體名 {
?? 成員屬性類型 屬性名 : 屬性類型
??? ...
}
例子:
struct Rect {
var width : Double
var height : Double
}
成員變量調(diào)用例子:
struct Rect {
?????? var width : Double = 10
?????? var height : Double = 10
}
var rect1 = Rect();
rect1.width = 11;
2).結(jié)構(gòu)體構(gòu)造器
struct Rect {
? ? var width : Double
??? var height : Double
}
var rect1 = Rect(width: 10, height: 10)?
//結(jié)構(gòu)體逐一成員構(gòu)造器
//在沒有額外聲明初始化方法時(shí),swift會(huì)默認(rèn)提供這個(gè)方法初始化宴合,swift要求結(jié)構(gòu)體或者類的成員變量焕梅,在初始化時(shí)給定初值
3).結(jié)構(gòu)體中定義成員方法
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()? //成員方法依賴于對(duì)象
4).結(jié)構(gòu)體是值類型
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是兩個(gè)不同的實(shí)例,但是內(nèi)容一致卦洽!并非是兩個(gè)引用贞言,指向了同一塊內(nèi)存區(qū)域
5).類的基本定義
類的聲明跟結(jié)構(gòu)體基本一致,關(guān)鍵字改為Class即可阀蒂,成員訪問也是通過“點(diǎn)語法”
但是類無逐一成員構(gòu)造器這個(gè)默認(rèn)方法
類不同于結(jié)構(gòu)體的值類型该窗,類是引用類型!
swift中提供恒等運(yùn)算符“ ===”來判斷兩個(gè)類對(duì)象是否指向同一個(gè)實(shí)例? //? “蚤霞!==”