您的位置:首页 > 移动开发 > Swift

Swift语言精要 - 扩展(Extension)

2016-04-01 19:29 561 查看
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."
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: