无法转换类型'()'的值预期参数类型'() - > ()'

时间:2016-05-02 16:52:19

标签: swift

我正在尝试将函数作为Swift中的参数传递。为了做到这一点,我定义了一个将回调参数作为:

的函数
func foo(callback: () -> () = { _ in }) { callback() }

然后我定义了另一个我将使用的函数:

func toBeCalled() -> () { 
   print("hello world") 
}

foo(toBeCalled())

我收到以下错误:

Cannot convert value of type '()' to expected argument type '() -> ()'

以前有人遇到过这个问题吗?我尝试过多种方法,包括使用Void。

谢谢!

1 个答案:

答案 0 :(得分:4)

你必须传递函数而不是该函数的结果:

foo(toBeCalled)

toBeCalled的类型为() -> (),但是当您编写toBeCalled()时,函数会被执行,您将获得返回类型()

相关问题