Ios 如何在Swift中定义包含另一个无参数函数的函数的返回类型?
我应该如何在Swift中的以下代码中定义createMyFunction的返回类型? 已尝试(()->Int),但当我在中调用createMyFunction()时,出现“表达式解析为未使用的函数”错误Ios 如何在Swift中定义包含另一个无参数函数的函数的返回类型?,ios,function,types,swift,Ios,Function,Types,Swift,我应该如何在Swift中的以下代码中定义createMyFunction的返回类型? 已尝试(()->Int),但当我在中调用createMyFunction()时,出现“表达式解析为未使用的函数”错误 func createMyFunction() -> /*RETURN_TYPE_GOES_HERE*/ { func myFunction () -> Int{ var number = 69 return number } }
func createMyFunction() -> /*RETURN_TYPE_GOES_HERE*/ {
func myFunction () -> Int{
var number = 69
return number
}
}
createMyFunction();
这是正确的方法:
func createMyFunction() -> ( () -> Int ) {
func myFunction () -> Int{
var number = 69
return number
}
return myFunction
}
返回类型为()->Int
:不带参数的闭包,返回Int
在Playerd中,您会看到该错误,因为createMyFunction
正在返回一个函数,但实际上您并没有使用它。您应该立即尝试执行它:
createMyFunction()()
此处createMyFunction()
调用返回另一个函数的函数。第二组括号调用返回的函数
当然,如果不想立即调用返回的函数,可以将其分配给变量:
let myFunc = createMyFunction()
或者将其作为参数传递给另一个函数,等等。这是正确的方法:
func createMyFunction() -> ( () -> Int ) {
func myFunction () -> Int{
var number = 69
return number
}
return myFunction
}
返回类型为()->Int
:不带参数的闭包,返回Int
在Playerd中,您会看到该错误,因为createMyFunction
正在返回一个函数,但实际上您并没有使用它。您应该立即尝试执行它:
createMyFunction()()
此处createMyFunction()
调用返回另一个函数的函数。第二组括号调用返回的函数
当然,如果不想立即调用返回的函数,可以将其分配给变量:
let myFunc = createMyFunction()
或者将其作为参数传递给另一个函数,等等。只是出于好奇,为什么您在函数中定义了一个函数,我是说在createMyFunction()中定义了myFunction(),为了学习,我只是剥离了代码,这样我就可以看到基本层的工作原理。好吧,你从@antonio那里得到答案只是出于好奇,为什么你在函数中定义了一个函数,我是说在createMyFunction()中定义了myFunction(),为了便于学习,我只是在剥离代码,以便了解基本级别的工作情况。好吧,你从@AntonioOh那里得到了答案,我明白了,谢谢。这个()语法实际上是做什么的?哦,我明白了,谢谢。这个()语法实际上是做什么的?