Swift语言精要 - 扩展(Extension)

本文讲解了Swift中如何使用Extension来扩展类型的功能,包括基本结构类型和自定义类,通过实例展示了扩展类型的方法和属性,以及如何通过扩展让类型遵循协议。

swift的Extension用户在不访问代码的情况下扩展基本结构类型或自定义类

extension Int {
    var doubled : Int {
        return self * 2
    }
    func multiplyWith(anotherNumber: Int) -> Int {
        return self * anotherNumber
    }
}

测试代码如下:

2.doubled // = 4
4.multiplyWith(32) // = 128

 

扩展甚至还可以使类型实现某个协议

下面这个例子在其它语言看来有些怪异,但在swift来说却是稀疏平常

protocol Blinking {
    var isBlinking : Bool { get }
    var blinkSpeed: Double { get set }
    func startBlinking(blinkSpeed: Double) -> Void
}

extension Int : Blinking {
    var isBlinking : Bool {
        return false;
    }
    var blinkSpeed : Double {
        get {
            return 0.0;
        }
        set {
            // Do nothing
        }
    }
    func startBlinking(blinkSpeed : Double) {
        println("I am the integer \(self). I do not blink.")
    }
}

测试代码如下:

2.isBlinking // = false
2.startBlinking(2.0) // prints "I am the integer 2. I do not blink."

 

转载于:https://www.cnblogs.com/davidgu/p/5346071.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值