就可选项(?)而言,两者之间的区别是什么? 我试图迅速接受,似乎是#34;?"的位置。事情和我很难掌握"?"在不同的地方。
var beaconGroup:GroupData = filteredArray.firstObject? as GroupData
var beaconGroup:GroupData = filteredArray.firstObject as GroupData
答案 0 :(得分:3)
这两行之间没有区别:
var beaconGroup:GroupData = filteredArray.firstObject? as GroupData
var beaconGroup:GroupData = filteredArray.firstObject as GroupData
首先,?
是不必要的 - firstObject
已经返回一个Optional。使用可选的链接运算符而不实际链接其他成员查找或访问表达式无效。
在Swift 1.2(目前在Xcode 6.3 beta中可用)中,多余使用可选链接运算符是编译错误:
错误:可选链无效,操作已生成' AnyObject?'
答案 1 :(得分:1)
Swift中的一个可选项是一个可以保存值或不保存值的变量。期权是通过追加?到类型:
var myOptionalString:String? = "Hello"
?
以两种常规方式使用:
1.Declare一个可选的var(只需在类型后添加?
)
var strValue : String?
2.判断var将在被调用时响应方法或属性
let hashValue = strValue?.hashValue
如果strValue
为零,则hashValue
为零。如果strValue
不为零,则hashValue
的值为strValue
。