Swift闭包“Type'Int?”不是可选的,值不能为零

Swift闭包“Type'Int?”不是可选的,值不能为零,swift,closures,optional,Swift,Closures,Optional,编译器抱怨: 类型“Int”不是可选的,值不能为零 在操场上也测试了这个,同样的错误。根据定义Int?这是一项可选择的权利吗?我的语法错了吗?使用Swift 3,Xcode 8.3.3 编辑: 这很有效 class Test { var x: Int? var TestX: () -> Bool { return self.x == nil } } 有人能解释为什么吗?大多数答案都假设我想返回Bool,但我特别想返回一个闭包,该闭包返回一个Boo

编译器抱怨:

类型“Int”不是可选的,值不能为零

在操场上也测试了这个,同样的错误。根据定义Int?这是一项可选择的权利吗?我的语法错了吗?使用Swift 3,Xcode 8.3.3

编辑:

这很有效

class Test {
    var x: Int?

    var TestX: () -> Bool {
        return self.x == nil
    }
}

有人能解释为什么吗?

大多数答案都假设我想返回Bool,但我特别想返回一个闭包,该闭包返回一个Bool,并将闭包作为函数参数传递。无论如何,我知道怎么做了,这是一个语法问题。虽然仍然不确定语法的含义,但无论如何。以下是解决方案:

class Test {
    var x: Int?

    var TestX: () -> Bool { return
        { () in
            self.x == nil
        }
    }
}

如果闭包中没有参数,只需使用两个括号:

class Test {
    var x: Int?

    var TestX: () -> Bool { return
        { () in
            self.x == nil
        }
    }
}
也不需要自己。

它应该是var TestX:Bool而不是var TestX:->Bool吗?
class Test {
  var x: Int?
  var TestX: () -> Bool { return { x == nil } }
}