gpt4 book ai didi

swift - 将 vars 添加到闭包 swift

转载 作者:行者123 更新时间:2023-11-28 12:28:58 24 4
gpt4 key购买 nike

嘿,我对 block 语法有点困惑。我目前有一个这样定义的函数:

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

目前我的 block 中没有任何参数,但我想包括两个。 rating: Double?message: String?。我将如何包括这些?

最佳答案

在你的函数声明中,didDismiss 是一个闭包。它的类型是(() -> Void)?),这是一个不带参数的Optional闭包,返回Void(没有结果。)

如果将其更改为 (() -> (Double,String)?

然后您的闭包返回一个元组,其中包含一个 Double 和一个 String

(在 Swift 中,一个函数只能返回一个结果。通常,当你想返回多个结果时,你会将该结果设为元组。)

编辑:

根据您的编辑,您似乎想将 PARAMETERS 添加到闭包中,而不是像您最初所说的那样返回值。

采用 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)")
})

关于swift - 将 vars 添加到闭包 swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42630114/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com