微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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)

}

}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐