1、打开Xcode编辑器,创建一个MacOS的命令行项目,在其中定义一个字典类型,用于演示可选类型的转换// 定义字典类型var dict = [0: "Red", 1: "Green", 2: "Blue"]

3、假设,要获取字典中序号为4的,当前不存在字典中的键,会怎么样呢?// 获取不存在字典中的键值,并将其转换为非空的值var color2 = dict[4]!// 输出结果,跟C#/java一样会直接报错print(color2)

5、这种方式的if-else写起来还是比较麻烦,那么,Swift语法中如何精简这种写法呢?// 此处使用 var 或者 let都可以,只不过let的变量,后面不能重新赋值if var color = dict[4] { // 如果dict[4]不为nil,才执行的语句 print(color)}print("done")

7、上面的方式,还是会觉得代码太多,有没有更加简单的方式呢?答案是有的,那就是使用双问号// 定义变量,赋值不存在的字典键值var color = dict[4];// 使用双问号,如果color结果是nil,就返回双问号后面的值var color2 = color ?? "color为空"// 输出结果:color为空print(color2)
