Swift 中的扩展 (Extension)

本文详细介绍了Swift中的扩展功能,包括如何使用扩展为现有类型添加新的计算属性、实例方法、构造器等,并提供了具体的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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)条腿")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值