Недавно я написал этот код, не задумываясь об этом:
myObject.myCollection.forEach { myObject.removeItem($0) }
где myObject.removeItem(_) удаляет элемент из myObject.myCollection.
Посмотрев на код сейчас, я озадачен тем, почему это работает, - не следует ли мне получать исключение по строкам Collection was mutated while being enumerated?
Один и тот же код работает даже при использовании обычного цикла for-in!
Является ли это ожидаемым поведением или мне повезло, что он не сбой?