【发布时间】:2017-09-26 01:29:01
【问题描述】:
我对 Swift 中的 return 感到困惑。我知道它用于返回函数中的值,如果这样使用:
func double(value: int) -> Int {
return value * 2
}
但我经常只看到 return 被使用,就像在这样的可选绑定中的 guard 语句中:
guard let value = value else (
print ("nothing")
return
}
那么像这样在guard 语句中只包含return 的目的是什么?实际上,在展开可选值时,我经常不仅在 guard 语句中看到这一点。当我想使用字典中的可选字符串时,我在编写代码时总是会发现这个问题。
let info = ["name": "sarah", "hometown": "sydney"]
class UserInfo {
func getTheName() -> String {
guard let name = info["name"] else { return }
return name
}
}
// Compile time error: "Non-void function should return a value"
即使我写了return name,我也会收到此错误。 Xcode 仍然抱怨我没有返回值。是因为guard语句中的return吗?
那么,你能告诉我return 在 Swift 中的用途吗?这让我很困惑。
【问题讨论】:
-
对于
guard语句,let语句的范围在块之外,因此您不能在else块内使用它。