如何在一行中检查Swift中的可选变量是否为零以返回Bool?
这是我迄今为止所尝试过的:
class UserManager {
var signedInUser: User? = nil
// some code
func isSignedIn() -> Bool {
return self.signedInUser?
}
}
这会导致以下错误消息:
无法转换表达式' $ T3 ??'输入' Bool'
我也尝试了以下内容:
func isSignedIn() -> Bool {
return self.signedInUser == nil
}
这会导致非常奇怪的错误消息:
输入' UIStatusBarStyle'不符合协议' NilLiteralConvertible'
我不想在isSignedIn
方法中执行以下操作,因为这个简单的任务太长了:
func isSignedIn() -> Bool {
if let signedInUser = self.signedInUser {
return true
}
return false
}
我在这里遗漏了什么吗?我虽然Swift使代码更短和更简单。你会怎么做?
答案 0 :(得分:2)
也许三元运算符会做到这一点。
func isSignedIn() -> Bool {
return self.signedInUser ? true : false
}