簡體   English   中英

將閉包傳遞給另一個閉包

[英]Passing closure to another closure

我是快速編程開發的新手。 我想知道如何將一個閉包傳遞給另一個閉包。

迅速關閉與目標之間有什么區別嗎?

如何將閉包傳遞給閉包?

閉包可以看作是任何其他(非閉包)類型。 這意味着您可以構造一個閉包,其中閉包的參數描述了另一種閉包類型。

例如

let sendMeAClosure: ((Int) -> String) -> () = {
    print($0(42)) /* ^^^^^^^^^^^^^^^- argument of sendMeAClosure
                                      is a closure itself        */
}

let myClosure: (Int) -> String = {
    return "The answer is \($0)."
}

sendMeAClosure(myClosure) // The answer is 42

請注意,Swift中的函數只是一種特殊的閉包類型,因此您還可以向上面的sendMeAClosure提供函數引用(其簽名與參數類型匹配)。

/* sendMeAClosure as above */

func myFunc(arg: Int) -> String {
    return "The answer is \(arg)."
}

sendMeAClosure(myFunc) // The answer is 42

迅速關閉和客觀限制之間有什么區別嗎?

對於第二個問題,請參閱以下問答

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM