swift中的可选指针与目标c中的nil指针有何不同?
Swift可选值不是零值。它是一种枚举,其中一个大小写表示非值(类似于关系数据库中的NULL),另一个表示实际值。
写入if myOptional == nil ...
只是检查optional是否设置为非值大小写的语法。
无值情况不是零的一个简单证明是,选项适用于所有类型,包括简单整数。
好吧,
在定义中:
Swift可选变量是一个枚举,它可以将nil作为值,其中目标变量是指针,nil表示的地方,它不指向哪里。
使用术语:
两者在某种意义上有点相似,
消息传递中两个变量的值都为零,任何方法都返回零
Swift中的可选链接类似于Objective-C中的消息传递nil,但以一种适用于任何类型的方式,并且可以检查成功或失败。
但在安全检查中,Swift optional是赢家
由于编译器已经为您做了许多类型检查,例如,非可选参数不能接受可选参数,因此您需要先检查它是否为零来打开它或当您强制转换任何变量时,它总是返回一个可选的,因此也是编译器级别的一个安全特性