您好,登錄后才能下訂單哦!
與結構體、枚舉的異同
相同點:
a. 都可以定義屬性保存數據,定義方法實現功能
b. 都可以定義下標方法
c. 都可以定義構造方法
d. 都可以遵循協議
e. 都可以使用分類(擴展)
不同點:
a. 類支持繼承和擴展
b. 結構體還支持一種成員構造方法
c. 類支持析構方法
d. 類的實例對象使用ARC管理內存
e. 類為”引用類型”,結構體和枚舉為“值類型”
值類型與引用類型的特點
值類型的特點:
a. 在賦值以及函數傳遞過程中,傳遞的是副本
b. 值類型包含特殊的方法:變質方法
引用類型的特點:
a. 在賦值以及函數傳遞過程中,傳遞的不是副本而是現有實例對象的引用
b. 兩個實例對象是否為同一引用,使用運算符 === !== 進行判斷
變質方法:
是值類型特有的一種方法,shiyongmutating關鍵字修飾
當方法內部修改該了結構體變量中的數值時需要聲明為變質
包括:修改了成員、修改了self等
如:
struct Animal {
var name:String = ""
mutating func changeSelf() {
self = Animal(name: "Animal")
}
}
var a1 = Animal(name: "abc")
a1.changeSelf()
print(a1.name) //“Animal"
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。