Swift 擴充套件extension

2022-08-21 12:00:11 字數 1286 閱讀 9471

1. 類、結構體、列舉都是可以擴充套件的。

(1)可以在擴充套件中新增方法;

(2)可以在擴充套件中新增屬性----這個屬性只能是計算型屬性,不可以是儲存型屬性;

(3)可以在擴充套件中新增建構函式----這個建構函式只能是便利建構函式,不可以是指定建構函式。

以上可以看到,**的基石還是在原來的類(結構體、列舉)中的,擴充套件只能起到輔助的作用。

struct

point

struct

size

class

rectangle

}

extension rectangle 

//擴充套件屬性---只能擴充套件計算型屬性,不能擴充套件儲存型屬性

varcenter: point

set }

//擴充套件建構函式---只能是便利建構函式,不可以是指定建構函式

convenience init(center: point, size: size)

}

2 可以擴充套件巢狀型別、擴充套件下標

巢狀型別:就是在乙個型別中定義另外乙個型別。

如下可以看到,列舉theme是在類裡面定義的,這個theme其實就是巢狀型別。 

class

ui }

extension rectangle 

func 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的擴充套件沒有名字...