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

12.7 Swift值类型的构造方法之间的调用,第1张

概述        /**          结构体  枚举          值类型的构造方法之间调用          值类型的构造器代理          构造方法可以调用其他构造方法来完成实例的构造,称之为构造器代理。          好处:减少构造方法之间的代码重复。                    */                  struct Segment {     @H_404_0@ /**

结构体 枚举

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

值类型的构造器代理

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

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

*/

@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())


@H_404_0@ print(seg2.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值类型的构造方法之间的调用所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1068017.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存