美文网首页
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