前言
人一旦懶了就是非??膳碌氖虑?,希望自己以后要更加勤奮。
正文
一 、結(jié)構(gòu)體 (Struct)
Swift 結(jié)構(gòu)體是構(gòu)建代碼所用的一種通用且靈活的構(gòu)造體。
我們可以為結(jié)構(gòu)體定義屬性(常量、變量)和添加方法,從而擴(kuò)展結(jié)構(gòu)體的功能。
例子一
struct Person {
var name :String
var age:Int
func printData(){
print("name =\(self.name) age =\(self.age)")
}
}
var xiaoming :Person=Person(name:"小明", age:15)
xiaoming.printData()
二、類(Class)
classPerson {
varname :String=""
varage:Int=0
init(name :String, age :Int){
self.name= name
self.age= age
}
funcprintData(){
print("name =\(self.name) age =\(self.age)")
}
}
varxiaoming =Person(name:"小明", age:16)
xiaoming.printData()
三、總結(jié)
從代碼來看Struct 跟 class 基本結(jié)構(gòu)代碼是沒有什么區(qū)別。
但是他們兩者卻有本質(zhì)區(qū)別
先說他們相同點(diǎn)
相同
1,定義屬性用于存儲(chǔ)值
2,定義方法用于提供功能
3,定義附屬腳本用于訪問值
4,定義構(gòu)造器用于生成初始化值
5,通過擴(kuò)展以增加默認(rèn)實(shí)現(xiàn)的功能
6,符合協(xié)議以對某類提供標(biāo)準(zhǔn)功能
不同
1,繼承允許一個(gè)類繼承另一個(gè)類的特征
2,類型轉(zhuǎn)換允許在運(yùn)行時(shí)檢查和解釋一個(gè)類實(shí)例的類型
3,解構(gòu)器允許一個(gè)類實(shí)例釋放任何其所被分配的資源
4,引用計(jì)數(shù)允許對一個(gè)類的多次引用
以我的理解就是結(jié)構(gòu)體沒有面向?qū)ο笕筇匦裕ǚ庋b,繼承,多態(tài)),而且結(jié)構(gòu)體是值引用,對象是地址引用(iOS是引用計(jì)數(shù))
歡迎大家提出自己的意見 以及對我個(gè)人的批評