Swift Tips 32 - Assigning to self in struct initializers

本文介绍了在 Swift 中,结构体构造器如何使用默认参数优化构造过程,通过扩展 Bool 类型创建新构造器作为示例,探讨值类型与类类型在构造过程中的差异,以及如何利用默认参数简化构造器的使用。
摘要由CSDN通过智能技术生成

代码截图

代码出处: Swift Tips 032 by John Sundell[1]

小笔记

这段代码在说什么

这段代码为 Bool 类型进行了扩展,并利用扩展为现有的 Bool 类型添加了一个新的构造器:init(input: String)。当输入参数为 yyes???? 的时候,构造出来的实例值为 true,其余情况则为 false,需要提醒的是 Bool 类型是一个结构体,也是值类型。

值类型和类类型的构造过程

我们都知道,构造器可以通过调用其它构造器来完成实例的部分构造过程,这一过程被称为构造器代理(initializer delegation),这种模式能避免多个构造器间的代码重复。

但是构造器代理的实现规则和组织形式在值类型(value type)和类类型(class type)中有所不同。

值类型是不支持继承的,例如枚举和结构体,所以它们的构造器代理过程相对简单,因为它们只能代理给自己的其它构造器。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值