欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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)条腿")