我在github上找到了一些用Swift编写的代码,
对这一行感到有点困惑
var done: (NSError?, NSData, NSString?) -> () = { (_, _, _) -> () in }
你可以解释一下这条线的真正含义吗?非常感谢你!
答案 0 :(得分:14)
_
表示不要说出那个东西。它可以在很多地方使用。在你的情况下,它是说忽略传递给闭包的变量。您提供的代码忽略了所有参数,但您也可以忽略一些参数。
in
是闭包实施的开始。在您的示例代码中,闭包的实现是空的。
总的来说,该行正在定义一个名为" done"采用可选的NSError(NSError?
),NSData(NSData
)和Optional NSString(NSString?
)并且不返回任何内容(-> ()
)。闭包的实际实现没有任何作用。
答案 1 :(得分:13)
_
是占位符参数名称。它表示预期参数,但不会使用。 in
表示闭包类型签名的结束。整行定义了一个函数,它接受三个参数而什么都不做。
答案 2 :(得分:0)
“_”用来做一些匿名的事情。
for (key, _) in dictionary{}
这里我们以匿名方式创造价值。
In用于启动闭包或循环,以及我们为应用循环的集合指定。