12.7 Swift值类型的构造方法之间的调用

前端之家收集整理的这篇文章主要介绍了12.7 Swift值类型的构造方法之间的调用前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

/**

结构体 枚举

值类型的构造方法之间的调用

值类型的构造器代理

构造方法可以调用其他构造方法来完成实例的构造,称之为构造器代理。

好处:减少构造方法之间的代码重复。

*/

struct Segment {

var origin: Double

var end: Double

init(origin: Double,end: Double) {

self.origin = origin

self.end = end

}

init() {

origin = 0.0

end = 0.0

}

init(origin: Double,length: Double) {

// self.origin = origin

// self.end = origin + length

// 也可以写成这个

self.init(origin: origin,end: origin + length)

}

func description() -> String {

return "(\(origin),\(end))"

}

}

// 成员逐一构造器

var seg0 = Segment.init(origin: 0.0,end: 10.0)

var seg1 = Segment.init()

var seg2 = Segment.init(origin: 2.0,length: 10.0)

print(seg0.description())

print(seg1.description())


print(seg2.description())



// 如果是类的话, 前面加上 convenience

class Segment1 {

var origin: Double

var end: Double

init(origin: Double,end: Double) {

self.origin = origin

self.end = end

}

// 便利化初始化方法

convenience init(origin: Double,length: Double) {

self.init(origin:origin,end:origin + length)

}

}

猜你在找的Swift相关文章