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) } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |