结构体 枚举
值类型的构造方法之间的调用
值类型的构造器代理
构造方法可以调用其他构造方法来完成实例的构造,称之为构造器代理。
好处:减少构造方法之间的代码重复。
*/
@H_404_0@ struct Segment { @H_404_0@ var origin: Double @H_404_0@ var end: Double
@H_404_0@ init(origin: Double,end: Double) { @H_404_0@ self.origin = origin @H_404_0@ self.end = end @H_404_0@ }
@H_404_0@ init() { @H_404_0@ origin = 0.0 @H_404_0@ end = 0.0 @H_404_0@ }
@H_404_0@ init(origin: Double,length: Double) {
// self.origin = origin
// self.end = origin + length
@H_404_0@ // 也可以写成这个 @H_404_0@ self.init(origin: origin,end: origin + length)
@H_404_0@ }
@H_404_0@ func description() -> String { @H_404_0@ return "(\(origin),\(end))" @H_404_0@ } @H_404_0@ }
// 成员逐一构造器
@H_404_0@ var seg0 = Segment.init(origin: 0.0,end: 10.0) @H_404_0@ var seg1 = Segment.init() @H_404_0@ var seg2 = Segment.init(origin: 2.0,length: 10.0)@H_404_0@ print(seg0.description())
@H_404_0@ print(seg1.description())
// 如果是类的话, 前面加上 convenIEnce
@H_404_0@ class Segment1 { @H_404_0@ var origin: Double @H_404_0@ var end: Double
@H_404_0@ init(origin: Double,end: Double) { @H_404_0@ self.origin = origin @H_404_0@ self.end = end @H_404_0@ }
@H_404_0@ // 便利化初始化方法 @H_404_0@ convenIEnce init(origin: Double,length: Double) { @H_404_0@ self.init(origin:origin,end:origin + length) @H_404_0@ } @H_404_0@ } 总结
以上是内存溢出为你收集整理的12.7 Swift值类型的构造方法之间的调用全部内容,希望文章能够帮你解决12.7 Swift值类型的构造方法之间的调用所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)