Swift编程语言中“_”和“in”的含义是什么?

时间:2014-06-17 18:18:52

标签: swift

我在github上找到了一些用Swift编写的代码,

对这一行感到有点困惑

var done: (NSError?, NSData, NSString?) -> () = { (_, _, _) -> () in }
你可以解释一下这条线的真正含义吗?非常感谢你!

3 个答案:

答案 0 :(得分:14)

_表示不要说出那个东西。它可以在很多地方使用。在你的情况下,它是说忽略传递给闭包的变量。您提供的代码忽略了所有参数,但您也可以忽略一些参数。

in是闭包实施的开始。在您的示例代码中,闭包的实现是空的。

总的来说,该行正在定义一个名为" done"采用可选的NSError(NSError?),NSData(NSData)和Optional NSString(NSString?)并且不返回任何内容(-> ())。闭包的实际实现没有任何作用。

答案 1 :(得分:13)

_是占位符参数名称。它表示预期参数,但不会使用。 in表示闭包类型签名的结束。整行定义了一个函数,它接受三个参数而什么都不做。

答案 2 :(得分:0)

“_”用来做一些匿名的事情。

for (key, _) in dictionary{}

这里我们以匿名方式创造价值。

In用于启动闭包或循环,以及我们为应用循环的集合指定。