Swift带默认值的可选变量赋值(双重问号)
发布时间:2020-12-14 06:06:33 所属栏目:百科 来源:网络整理
导读:所以我试图做 let foo = dict["key"] as? String ?? "empty"var bar = some_func(string: foo!) 和XCode 6抱怨“后缀的操作数’!应该有可选类型;类型是’String’“在第二行。 如果我将第一行更改为 let foo: String? = dict["key"] as? String ?? "empty"
所以我试图做
let foo = dict["key"] as? String ?? "empty" var bar = some_func(string: foo!) 和XCode 6抱怨“后缀的操作数’!应该有可选类型;类型是’String’“在第二行。 如果我将第一行更改为 let foo: String? = dict["key"] as? String ?? "empty" 错误消失。 这是一种缺点还是我只是做错了什么?
无聚结算符a? b是一个捷径
a != nil ? a! : b 它返回左操作数展开或右操作数。所以foo的类型是String,第二行应该是 var bar = some_func(string: foo) 没有感叹号,因为foo不是可选的,不能被解开。 (如果将第一行更改为 let foo: String? = dict["key"] as? String ?? "empty" 那么右边的结果再次被包装到可选字符串中,并且需要以在第二行中打开。它使错误消失,但这可能不是你想要的。) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容