我收到错误:
条件绑定的初始化必须具有可选类型,而不是'()'。
使用Swift语言,下面是代码:
if let result = brain.performOperation(operation)
答案 0 :(得分:0)
我想我可以回答你的问题,但我不知道它对你有多大帮助。
使用if let someVar = someOptional { }
的方法是检查变量的值(someOptional)以查看它是否为“nil”或“value”。如果它不是nil那么someVar将被赋予someOptional的非nil值并执行{ }
之间的代码,这可以安全地引用someVar,知道它不是nil。如果someOptional为nil,则{}中的代码被绕过而不执行。
您在上面发布的评论表明performOperation()方法是这样的:
func performOperation(symbol:String) {
if let operation = knownOps[symbol] {
opStack.append(operation)
}
}
此方法不返回任何内容,或者更正式地返回void aka ()
。 void,或()
不是值,也不是nil。
所以当你有这个陈述时
if let result = brain.performOperation(operation) { }
编译器抱怨因为它期望brain.performOperation(operation)
返回nil或value,但不返回void ()
,这正是方法返回的内容。
如果您对选项仍然感到困惑,请务必尽可能多地阅读Swift Language Reference。选项是语言的重要组成部分,一旦你习惯了它们,你会发现它们非常宝贵。