美文网首页
swift5基本语法-init?可失败初始化器

swift5基本语法-init?可失败初始化器

作者: 翀鹰精灵 | 来源:发表于2021-09-23 14:15 被阅读0次

在Swift中,类、结构体、枚举都可以使用init?来定义可失败初始化器。如下所示:

class Perosn {
    var name : String
    init?(name:String) {
        if name.isEmpty {
            return nil
        }
        self.name = name
    }
}

var p1 = Perosn(name: "")
print(p1) //nil
var p2 = Perosn(name: "Allison")
print(p2) //Optional(swift_demo.Perosn)

系统中的可失败初始化器应用场景:

1. Int基本数据类型可失败初始化器 @inlinable public init?(_ description: String)

02.png 03.png
2. 枚举类型可失败初始化器
04.png

总结:

使用可失败初始化器也需要注意以下几点:
① 不允许同时定义参数标签,参数个数,参数类型相同的可失败初始化器非可失败初始化器

05.png

可失败初始化器可以调用非可失败初始化器

06.png

可失败初始化器可以调用可失败初始化器,其中一个初始化过程失败,之后的代码都停止执行。

07.png
如果便捷初始化方法里面self.init(name: "")初始化失败,那么后面的self.name = "Allison"代码都将停止执行。

END!

相关文章

网友评论

      本文标题:swift5基本语法-init?可失败初始化器

      本文链接:https://www.haomeiwen.com/subject/tcgbyltx.html