Swift 擴充
- 擴充(Extension)用于為已存在的類,結構體或者枚舉等類型添加新的功能
- 擴充可以對一個類型添加新的功能,但是不能重寫已有的功能
-
Swift 中的擴充可以:
1.添加計算型屬性和計算型靜态屬性
2.定義執行個體方法和類型方法
3.提供新的構造器
4.定義下标
5.定義和使用新的嵌套類型
6.使一個已有類型符合某個協定
- 擴充使用 extension 來聲明
- 格式:
extension 類型名 {
//添加的新功能
}
示例一 給 Double 類型擴充計算屬性
extension Double {
var km : Double {
return self * 1000
}
var cm : Double {
return self/100
}
}
let kil = 1.km
print("\(kil)米")
let tem = 3.cm
print("\(tem)厘米")
示例二 擴充構造函數
- 擴充構造函數就是為一個類型(類、結構體、枚舉)添加閑的構造函數
class Animal {
var name : String?
var age : Int?
init(name: String,age: Int) {
self.name = name
self.age = age
}
}
//擴充 Aniaml 類
extension Animal {
//周遊構造函數
convenience init(name : String){
self.init(name: name, age: 18)
}
}
let dog = Animal(name: "小��")
let cat = Animal(name: "小��", age: 3)
示例三 : 擴充方法
extension Int {
static var num : Int = 4
func legInt() -> Int {
return self * Int.num
}
mutating func legInt1(){
self = self*Int.num
}
}
let cat1 = 6.legInt()
print("6 隻��有\(cat1)條腿")
var cat2 = 8
cat2.legInt1()
print("8 隻��有\(cat2)條腿")