最近,我编写了这段代码而没有多想它:
myObject.myCollection.forEach { myObject.removeItem($0) }
Run Code Online (Sandbox Code Playgroud)
myObject.removeItem(_)从哪里删除项目myObject.myCollection.
现在看代码,我很困惑为什么这个甚至有用 - 我不应该得到一个例外Collection was mutated while being enumerated吗?使用常规for-in循环时,相同的代码甚至可以正常工作!
这是预期的行为,还是我"幸运"它没有崩溃?
swift ×1