Swift-多重Optional

本文介绍了Swift中的多重Optional概念,将其比喻为盒子,解释了每个Optional可以为空、包含值或包含另一个Optional。通过实验展示了如何处理和比较不同层级的Optional,强调在非nil值的情况下,Optional的层数不影响值的比较和强制解包。
摘要由CSDN通过智能技术生成

现在暂时对于Optional有了一定的了解,但是突然发现还有这样定义的:

var literalNil: String?? = nil

两个问号是什么鬼?这个其实就是多重Optional。

1.概念

多重Optional,故名思义,就是使用用多个Optional,具体可以这么理解。可以把每个Optional看作是一个盒子(王巍这么写的,我不知道是不是他首创,但是我觉得盒子这个比喻很妙),那么每个Optional里边可以装的东西就有三类:

a.什么都没有(nil)

b.物品(各种变量)

c.另一个盒子(Optional)

那么理解多重Optional,也就简单多了,就是盒子套了另一个盒子。

2.一些实验

为了学习多重Optional,在自己的playground里边写了一些判断实验。

在这里提一下,“!”的作用:你可以在可选的名字后面加一个感叹号(!)来获取值。这个惊叹号表示“我知道这个可选有值,请使用它,即可选值的强制解析(forced unwrapping)。在多重Optional里边,可以理解成用“!”来拆盒子。

(1)当给Optional赋值为nil

var aNil: String? = nil

var anotherNil: String?? = aNil  //真正的多重Optional

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值