Swift可以嵌套吗?

时间:2015-10-22 13:48:29

标签: swift optional

我找不到这个问题的答案,例如我可以选择一个String的可选项吗?我试着写一个小测试来检查出来:

let a : String? = nil;
let b : String?? = a;
if b!=nil { // error
  println("has value");
}
else {
  println("fail");
}

但由于我不是Swift程序员,我不知道如何处理错误,说“无法分配给这个表达式的结果”。

1 个答案:

答案 0 :(得分:2)

是的,你可以;但是你的语法不正确。这一行:

if b!=nil

由编译器消化为:

if (b!) = nil

...所以它认为你正试图将nil分配给未包装的可选项。 Swift不允许您在if语句中进行分配(与Objective-C相比)。相反要更清楚:

if b != nil

编辑:并且,为了完成这个想法,证明语法糖真的是可选的,如果你添加:

if let b = b {
    print("\(b)")
}

您应该看到nil作为打印输出。