系统:macOS Sierra 10.12.6
工具:xcode8.3.1
语言:swift3.0.2
在学习swift中,问号❓与感叹号❗️可谓是一大特色,但是使用起来,确实有那么一些容易让人迷糊,首先,明白这个两个符号在swift中的使用定义:
问号❓:问号暗示包含的值是可选类型,也就是说可能包含某个类型的值也可能不包含值。
感叹号❗️:当你确定可选类型确实包含值之后,你可以在可选的名字后面加一个感叹号(!)来获取值。这个惊叹号表示“我知道这个可选有值,请使用它。”这被称为可选值的强制解析。
下面通过例子演示:
此处,将字符串转换成Int类型,xcode会自动提示警告,为啥?
1、如果所转换的字符串刚好是Int,则返回相关值,即 123。
2、如果possibleNumber = “Hello”或者 🔥,则返回可能不包含值
所以在类型转换的时候,显示判断出possibleNumber的类型,然后依据类型所定义的值进行转换,而possibleNumber为String类型,所以存在转换Int为空的现象。
下面是改为感叹号模式,表示一定有值,在swift中nil不是指针——它是一个确定的值,用来表示值缺失
没有提示,运行成功