Ios 如何在Swift中定义包含另一个无参数函数的函数的返回类型?

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 } }

我应该如何在Swift中的以下代码中定义createMyFunction的返回类型? 已尝试(()->Int),但当我在中调用createMyFunction()时,出现“表达式解析为未使用的函数”错误

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那里得到了答案,我明白了,谢谢。这个()语法实际上是做什么的?哦,我明白了,谢谢。这个()语法实际上是做什么的?