Swift语言精要 - 扩展(Extension)
2016-04-01 19:29
561 查看
swift的Extension用户在不访问代码的情况下扩展基本结构类型或自定义类
测试代码如下:
扩展甚至还可以使类型实现某个协议
下面这个例子在其它语言看来有些怪异,但在swift来说却是稀疏平常
测试代码如下:
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."
相关文章推荐
- Swift语言精要 - 属性
- Swift中的指针类型
- Swift利用闭包(closure)来实现传值-->前后两个控制器的反向传值
- Swift 学习记录(4)
- Swift 笔记
- Swift 2.2发布
- Swift编程基础(四):控制流
- Swift 常用控件的创建
- Swift 协议代理传值(十)
- iOS Swift编程语言
- Swift中集合类型indexOf(Element)提示错误的解决办法
- Swift中集合类型indexOf(Element)提示错误的解决办法
- Swift中集合类型indexOf(Element)提示错误的解决办法
- Swift中的as操作符
- Swift中的as操作符
- Swift中的as操作符
- Swift UISwitch/UIProgressView/UISlider
- swift字符串
- Swift语言教程中文文档
- Swift生成二维码