美文网首页
Swift- Extension

Swift- Extension

作者: lxl125z | 来源:发表于2017-02-21 18:33 被阅读0次

扩展属性(只能是计算属性)

//扩展可以添加新计算属性, 但是不能添加存储属性(也不可以添加属性观察).  
extension Double{  //为API中的已有类型添加实例属性  
    var km : Double { return self * 1_000.0 }  
}  
  
let jjLength = 1.m  // 1与m进行点运算, 表示1的Double值  

扩展构造器

//可以定制自己的构造器  
class MyClass{  
    var a : Int  
    init(){  
        a = 10  
    }  
}  
  
extension MyClass{  
    convenience init(var parm:Int){   //扩展构造器  
        self.init()  
        println("扩展构造器--->便利构造器, \(parm)")  
    }  
}  
  
var myClass = MyClass(parm: 9)  

扩展方法

通过扩展方法, 可以修改该实例self本身.但是方法前要加 mutating

extension Double{  
    mutating func myMoidfySelfValue{  
        self = self * self //修改self实例的值  
    }  
}  
  
var d = 2.0  
d.myMoidfySelfValue()

扩展下标

extension Int {
    enum Kind {
        case Negative, Zero, Positive
    }
    var kind: Kind {
        switch self {
        case 0:
            return .Zero
        case let x where x > 0:
            return .Positive
        default:
            return .Negative
        }
    }
}

嵌套类型

extension Int {
    enum Kind {
        case Negative, Zero, Positive
    }
    var kind: Kind {
        switch self {
        case 0:
            return .Zero
        case let x where x > 0:
            return .Positive
        default:
            return .Negative
        }
    }
}

相关文章

网友评论

      本文标题:Swift- Extension

      本文链接:https://www.haomeiwen.com/subject/qpbuwttx.html