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

在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!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值