swift中 ?和 !的区别

时间:2023-03-09 07:40:59
swift中 ?和 !的区别

可选类型(?)与强制解析运算符(!)

?是一种判断后再拆包的语法糖

!是一种强制拆包的语法糖
当你不确定有值的时候就可以用  ?
当你确定有值的时候可以用  !
?的几种使用场景:
1.声明Optional值变量
2.用在对Optional值操作中,用来判断是否能响应后面的操作
3.用于安全调用protocol的optional方法
4.使用 as? 向下转型(Downcast)
!的使用场景
1.强制对Optional值进行拆包(unwrap)
2.声明Implicitly Unwrapped Optionals值,一般用于类中的属性