如何在Swift的以下代码中定义createMyFunction的返回类型? 试过(() - > Int),但我得到"表达式解析为未使用的函数"我在Playground中调用createMyFunction()时出错。
func createMyFunction() -> /*RETURN_TYPE_GOES_HERE*/ {
func myFunction () -> Int{
var number = 69
return number
}
}
createMyFunction();
答案 0 :(得分:4)
这是正确的方法:
func createMyFunction() -> ( () -> Int ) {
func myFunction () -> Int{
var number = 69
return number
}
return myFunction
}
返回类型为() -> Int
:一个不带参数的闭包并返回Int
。
在游乐场中,您会看到该错误,因为createMyFunction
正在返回一个函数,但您实际上并未使用它。您应该立即尝试执行它:
createMyFunction()()
这里createMyFunction()
调用返回另一个函数的函数。第二组括号调用返回的函数。
当然,如果您不想立即调用返回的函数,可以将其分配给变量:
let myFunc = createMyFunction()
或将其作为参数传递给另一个函数等。