在 swift 中按嵌套闭包中的位置引用的闭包参数



我有这段代码可以正常工作:

var discoverEvents = events.map { event in
   userEvents.find { $0.eventID == event.eventID } ?? event
}

我想知道是否有任何方法可以通过内部位置引用event find以某种方式:

var discoverEvents = events.map { userEvents.find { $$0.eventID == $0.eventID } ?? $0 }

让它变成一行?

不,这是不可能的。内部$0遮蔽外部,没有其他方法可以引用外部范围内的$0

正如@DavidBerry提到的,该语法适用于简短的匿名函数。否则事情可能会变得非常混乱。

最新更新