簡體   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