大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处.
如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;)
我们知道在swift中,如果方法的最后一个参数是一个闭包类型,则可以省略该参数,直接在函数后面跟一个闭包,比如:
func test(count:Int,(Int)->Bool){
//...
}
可以这么调用:
test(11){(x)->Bool in
//...
}
但是有些情况不能省略括号,比如for语句中:
for dinosaur in dinosaurs.filter {(dinosaur) -> Bool in
distanceBetween(tower.spriteComponent.node,nodeB: dinosaur.spriteComponent.node) < towerType.range
}{
if let t = target{
if dinosaur.spriteComponent.node.position.x > t.spriteComponent.node.position.x{
target = dinosaur
}
}else{
target = dinosaur
}
}
以上语句会报错的,因为for语句后面也要跟{},Swift不知道该{}到底是哪个{},好像绕口令…
这时必须要在filter后面用()包围住{}
但如果不在for语句中,则可以省略(),比如:
let x = dinosaurs.filter {(dinosaur)->Bool in
distanceBetween(tower.spriteComponent.node,nodeB: dinosaur.spriteComponent.node) < towerType.range
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。