簡體   English   中英

將var添加到閉包swift

[英]Adding vars to a closure swift

嘿,我對塊語法有些困惑。 我目前有一個這樣定義的函數:

func presentRateAlert(ID: Int, didDismiss: (() -> Void)?)

當前,我在塊中沒有任何參數,但是我想包括兩個。 rating: Double? message: String? 我將如何包括這些?

在函數聲明中,didDismiss是一個閉包。 類型是(() -> Void)?) ,這是一個不帶參數的可選閉包,並且返回Void (無結果)。

如果將其更改為(() -> (Double,String)?

然后,您的閉包返回一個包含DoubleString的元組。

(在Swift中,一個函數只能返回一個結果。通常,當您要返回多個事物時,可以將該結果設為一個Tuple。)

編輯:

根據您的修改,您似乎想將參數添加到閉包中,而不是像最初所說的那樣返回值。

接受Double和String且不返回值的Optional閉包將聲明為((Double, String) -> Void)?)

進行這種關閉的函數可能如下所示:

func test(id: Int, closure: ((Double, String) -> Void)?) {
    closure?(3.14, "pi")
}

並調用它可能像這樣:

test(id: 6, closure: {
    (aDouble, aString) in
    print("In closure, double = \(aDouble), string = \(aString)")
})

暫無
暫無

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

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