Swift optional 可以嵌套吗?
Can Swift optional be nested?
我找不到这个问题的答案,例如我可以有可选的字符串吗?我试着写了一个小测试来检查一下:
let a : String? = nil;
let b : String?? = a;
if b!=nil { // error
println("has value");
}
else {
println("fail");
}
但由于我不是 Swift 程序员,所以我不知道如何处理 "cannot assign to the result of this expression".
错误
是的,你可以;你的语法虽然不正确。这一行:
if b!=nil
被编译器消化为:
if (b!) = nil
... 所以它认为您正在尝试将 nil
分配给未包装的可选。 Swift 不允许您在 if
语句中进行赋值(与 Objective-C 相反)。相反更清楚:
if b != nil
编辑:并且,为了完成这个想法,证明语法糖确实是一个可选的可选,如果你添加:
if let b = b {
print("\(b)")
}
您应该看到 nil
作为打印输出。
我找不到这个问题的答案,例如我可以有可选的字符串吗?我试着写了一个小测试来检查一下:
let a : String? = nil;
let b : String?? = a;
if b!=nil { // error
println("has value");
}
else {
println("fail");
}
但由于我不是 Swift 程序员,所以我不知道如何处理 "cannot assign to the result of this expression".
错误是的,你可以;你的语法虽然不正确。这一行:
if b!=nil
被编译器消化为:
if (b!) = nil
... 所以它认为您正在尝试将 nil
分配给未包装的可选。 Swift 不允许您在 if
语句中进行赋值(与 Objective-C 相反)。相反更清楚:
if b != nil
编辑:并且,为了完成这个想法,证明语法糖确实是一个可选的可选,如果你添加:
if let b = b {
print("\(b)")
}
您应该看到 nil
作为打印输出。