为什么在Swift中,从函数param反转bool结果会导致编译器错误



我刚开始学习swift,但这对我来说毫无意义

func myFlipper(f: Int -> Bool, num:Int) {
    return !f(num)
}

导致编译器错误"无法使用'Bool'类型的参数调用'!'"。

来自苹果的swift文档"逻辑NOT运算符(!a)反转布尔值,使true变为false,false变为true。"链接

有人知道发生了什么事吗?

此函数具有void类型,您将返回Bool。如果您想返回Bool,请将其写为

func myFlipper(f: Int -> Bool, num:Int) -> Bool{
   return !f(num)
}

否则,不要归还任何东西,它不会发出任何警告。

最新更新