class Test {
var x: Int?
var TestX: () -> Bool {
return self.x == nil
}
}
编译器抱怨:
类型"Int?"不是可选的,值永远不能为零
也在操场上测试过这个,同样的错误。根据定义,Int?
是可选的权利?我的语法有误吗?使用 Swift 3,Xcode 8.3.3
编辑:
这行得通
class Test {
var x: Int?
var TestX: () -> Bool { return
{ () in
self.x == nil
}
}
}
有人可以解释为什么吗?
如果您的闭包没有参数,您可以简单地使用两个括号:
class Test {
var x: Int?
var TestX: () -> Bool { return { x == nil } }
}
也不需要自我。
大多数答案假设我想返回一个布尔值,但我特别想返回一个返回布尔值的闭包(将闭包作为函数参数传递)。无论如何,我想出了该怎么做,这是一个语法问题。虽然仍然不确定语法的含义,但无论如何。这是解决方案:
class Test {
var x: Int?
var TestX: () -> Bool { return
{ () in
self.x == nil
}
}
}