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

Ev3*_*ing 18 swift

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

对这一行感到有些困惑

var done: (NSError?, NSData, NSString?) -> () = { (_, _, _) -> () in }
Run Code Online (Sandbox Code Playgroud)

你能解释一下这条线的真正含义吗?非常感谢你!

dre*_*wag 15

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

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

总的来说,该行定义了一个名为"done"的闭包,它接受一个Optional NSError(NSError?),NSData(NSData)和Optional NSString(NSString?)并且不返回任何内容(-> ()).闭包的实际实现什么都不做.


Chu*_*uck 14

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