Bool return 类型的可选闭包
Optional closure with Bool return type
我有一个带有可选闭包参数的方法,如下所示:
func when(_ name:String, state:State = .normal, closure:(() -> Bool)? = nil)
{
...
}
我这样称呼他们:
when("I do something")
{
if !self.doSomething() { return false }
if !self.doSomethingElse() { return false }
return true
}
这给了我一个编译时错误:
Error: cannot convert value of type '()' to expected argument type
'Bool'
这是怎么回事?为什么 Swift 在需要 Bool 的地方看到类型 ()?
你的函数 self.doSomething() 和 self.doSomethingElse() 不 return布尔值
而不是
func doSomething() {
return true
}
应该是这样的
func doSomething() -> Bool {
return true
}
我有一个带有可选闭包参数的方法,如下所示:
func when(_ name:String, state:State = .normal, closure:(() -> Bool)? = nil)
{
...
}
我这样称呼他们:
when("I do something")
{
if !self.doSomething() { return false }
if !self.doSomethingElse() { return false }
return true
}
这给了我一个编译时错误:
Error: cannot convert value of type '()' to expected argument type 'Bool'
这是怎么回事?为什么 Swift 在需要 Bool 的地方看到类型 ()?
你的函数 self.doSomething() 和 self.doSomethingElse() 不 return布尔值
而不是
func doSomething() {
return true
}
应该是这样的
func doSomething() -> Bool {
return true
}