One-Liner用于检查Swift中的Optional是否为nil

时间:2014-07-31 09:37:18

标签: swift optional

如何在一行中检查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使代码更短更简单。你会怎么做?

1 个答案:

答案 0 :(得分:2)

也许三元运算符会做到这一点。

func isSignedIn() -> Bool {
    return self.signedInUser ? true : false
}