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

2021-09-23  本文已影响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!

上一篇下一篇

猜你喜欢

热点阅读