Swift中闭包表达式的等价性,例如SKAction补全
下列闭包表达式等效吗Swift中闭包表达式的等价性,例如SKAction补全,swift,lambda,sprite-kit,closures,swift2,Swift,Lambda,Sprite Kit,Closures,Swift2,下列闭包表达式等效吗 sprite.runAction(action, completion: { print("done") }) sprite.runAction(action, completion: {() -> Void in print("done") }) sprite.runAction(action) {() -> Void in print("done") } 在上面使用SpriteKit的with completion块的示例中,第
sprite.runAction(action, completion: {
print("done")
})
sprite.runAction(action, completion: {() -> Void in
print("done")
})
sprite.runAction(action) {() -> Void in
print("done")
}
在上面使用SpriteKit的with completion块的示例中,第一个示例可能是隐式的;然而,这是第三个例子,我不确定我是否理解
在第三个示例中,函数
runAction()
不返回任何内容;那么,当操作完成时,如何调用完成块呢?您的所有示例都是等效的
sprite.runAction(action, completion: {
print("done")
})
是
sprite.runAction(action, completion: {() -> Void in
print("done")
})
省略参数和返回类型声明,
因为闭包的类型可以是
(此处:来自完成类型:
参数)
最后,
sprite.runAction(action) {() -> Void in
print("done")
}
与第二个相同,但使用
.它们都是等效的。最后一个使用一个。