/**
结构体 枚举
值类型的构造器代理
构造方法可以调用其他构造方法来完成实例的构造,称之为构造器代理。
*/
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 举报,一经查实,本站将立刻删除。