加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-14 06:31:31 所属栏目:百科 来源:网络整理
导读:/** 结构体 枚举 值类型的构造方法之间的调用 值类型的构造器代理 构造方法可以调用其他构造方法来完成实例的构造,称之为构造器代理。 好处:减少构造方法之间的代码重复。 */ struct Segment { var origin: Double var end: Double init (origin: Double ,

/**

结构体 枚举

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

值类型的构造器代理

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

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

*/

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)

}

}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读