繁体   English   中英

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

[英]How to define a return type of a function which contains another, no parameter, function in Swift?

如何在Swift的以下代码中定义createMyFunction的返回类型? 尝试过(()-> Int),但是在Playground中调用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

在操场上,您会看到该错误,因为createMyFunction正在返回一个函数,但实际上并没有使用它。 您应该尝试立即执行它:

createMyFunction()()

在这里, createMyFunction()调用返回另一个函数的函数。 第二组括号调用返回的函数。

当然,如果您不想立即调用返回的函数,可以将其分配给变量:

let myFunc = createMyFunction()

或将其作为参数传递给另一个函数,等等。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM