问号:
用来声明一个Optional的数据结构 其本质上是个enum, 里面有case None / case Some.
而想要声明一个可选类型的变量或者常量时 只需要在数据类型后面加上?
感叹号:
因为Optional只有在解包后不为nil才可以参与运算,所以我们会对可选类型进行强制解包,直接在那个变量或者常量名之后加!即可。
双问号:
就像是lamda表达式一样 放在变量或者常量名后面 如果这个不是Nil 就用这个的值 如果是的话 那就用后面紧跟着的值。
var a: Int?
let b = 4
print((a ?? 0) + b)
但是点号是什么意思呢?看到很多前面什么都没有 只有一个点号后面直接加 属性或者函数名的? 特殊的语法吗?
关于这个问题,其实要不同情况具体分析:
比如说使用Promise包,其语句中包含了.then .catch .done等等的关键字。这个就是promise这种数据结构(?)的特殊用法。
而在有些情况,就是像Java一样,用这个点号来调用对象的属性或者函数的。