Swift 扩展

来源:互联网 发布:域名注册商是什么意思 编辑:程序博客网 时间:2024/04/27 16:07
//扩展//在现有类和结构体的基础上,扩展新的功能
//计算属性extension Double {    var km: Double {        return self*1000    }    var m: Double {        return self    }    var cm: Double {        return self / 100    }    var mm: Double {        return self / 1000    }    var ft: Double {        return self / 3.28    }}let one = 25.4.mmprint("one meters--\(one)")let three = 3.ftprint("three meter -- \(three)")let am = 40.km + 100.mprint("am -- \(am)")
//使用结构体struct Size {    var width = 0.0 , height = 0.0}struct Point {    var x = 0.0 , y = 0.0}struct Rect {    var origin = Point()    var size = Size()}extension Rect {    init (center: Point, size: Size) {        let originX = center.x - (size.width / 2)        let originY = center.y - (size.height / 2)        self . init(origin: Point (x: originX, y: originY), size:size)    }}let cen = Rect (center: Point (x: 4.0, y: 4.0), size: Size (width: 3.0, height:3.0))print(cen)
//方法扩展extension Int {    func message() -> String {        var message = "";        switch self {        case 0:            message = "OK"        case -1:            message = "Fail"        default:            message = "NO"        }        return message    }}print((-1).message())print(3.message())print(0.message())
0 0