我找不到这个问题的答案,例如我可以选择一个String的可选项吗?我试着写一个小测试来检查出来:
let a : String? = nil;
let b : String?? = a;
if b!=nil { // error
println("has value");
}
else {
println("fail");
}
但由于我不是Swift程序员,我不知道如何处理错误,说“无法分配给这个表达式的结果”。
答案 0 :(得分:2)
是的,你可以;但是你的语法不正确。这一行:
if b!=nil
由编译器消化为:
if (b!) = nil
...所以它认为你正试图将nil
分配给未包装的可选项。 Swift不允许您在if
语句中进行分配(与Objective-C相比)。相反要更清楚:
if b != nil
编辑:并且,为了完成这个想法,证明语法糖真的是可选的,如果你添加:
if let b = b {
print("\(b)")
}
您应该看到nil
作为打印输出。