Swift 中的扩展 (Extension)
程序员文章站
2024-03-17 22:04:52
...
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)条腿")