1. 類、結構體、列舉都是可以擴充套件的。
(1)可以在擴充套件中新增方法;
(2)可以在擴充套件中新增屬性----這個屬性只能是計算型屬性,不可以是儲存型屬性;
(3)可以在擴充套件中新增建構函式----這個建構函式只能是便利建構函式,不可以是指定建構函式。
以上可以看到,**的基石還是在原來的類(結構體、列舉)中的,擴充套件只能起到輔助的作用。
structpoint
struct
size
class
rectangle
}
extension rectangle//擴充套件屬性---只能擴充套件計算型屬性,不能擴充套件儲存型屬性
varcenter: point
set }
//擴充套件建構函式---只能是便利建構函式,不可以是指定建構函式
convenience init(center: point, size: size)
}
2 可以擴充套件巢狀型別、擴充套件下標
巢狀型別:就是在乙個型別中定義另外乙個型別。
如下可以看到,列舉theme是在類裡面定義的,這個theme其實就是巢狀型別。
classui }
extension rectanglefunc pointatvertex(v: vertex) ->point
}//擴充套件下標
subscript(index: int) ->point
}
3 對系統類進行擴充套件----對int擴充套件(這其實就是函式式程式設計的思想)
extension int//立方
varcude: int
//將「num >= 0 && num < 20」這種判斷擴充套件為乙個方法
func inrange(closedleft: int, openright: int) ->bool
//將「for i in 0 ..< num」這種迴圈擴充套件為乙個方法
func repetitions(task: (int) ->())
}
}var num = 8
8.square
8.cude
num >= 0 && num < 20
8.inrange(closedleft: 0, openright: 20
)for i in
0 ..num.repetitions
swift 擴充套件
擴充套件就是為乙個已有類 結構體 列舉型別或者協議型別新增新功能。這包括在沒有許可權獲取原始源 的情況下擴充套件型別的能力。擴充套件和objectvie從中的分類類似。swift中的擴充套件可以 新增計算型別屬性和計算型型別屬性 定義例項方法和型別方法 提供新的構造器 定義下標 定義和使用新的巢狀型...
類別(category)延展(extension)
objective c中提供了可以讓我們擴充套件類定義的手段 類目,延展和協議。類目 為已知的類增加新的方法 延展 通知在本類的定義裡使用類目來宣告私有方法 協議 協議宣告了可以被任何類實現的方法。1.類目 類別 category 1 宣告類目 inte ce testmodel newmodel ...
swift型別擴充套件
1.擴充套件語法 2.計算型屬性 3.構造器 4.方法 5.下標 6.巢狀型別 擴充套件就是向乙個已有的類 結構體或列舉型別新增新功能。包括在沒有許可權獲取原始源 的情況下擴充套件型別的能力 即逆向建模 擴充套件和oc中的分類 category 類似。不過與oc不同的是,swift的擴充套件沒有名字...