我有一个带有可选闭包参数的方法,如下所示:
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
}
这给了我一个编译时错误:
错误:无法转换类型'()'的值预期的参数类型 '布尔'
这里发生了什么?为什么Swift会看到一个预期Bool的类型()?
答案 0 :(得分:3)
您的功能 self.doSomething()和 self.doSomethingElse()不会返回bool值
而不是
func doSomething() {
return true
}
应该是这样的
func doSomething() -> Bool {
return true
}