Element während der Iteration mit forEach @ aus der Sammlung entfern

or kurzem habe ich diesen Code geschrieben, ohne viel darüber nachzudenken:

myObject.myCollection.forEach { myObject.removeItem($0) }

womyObject.removeItem(_) entfernt ein Objekt ausmyObject.myCollection.

enn ich mir jetzt den Code ansehe, bin ich verwirrt, warum das überhaupt funktioniert - sollte ich nicht eine Ausnahme im Sinne von @ bekommeCollection was mutated while being enumerated? Der gleiche Code funktioniert auch bei Verwendung einer regulären For-In-Schleife!

Ist dieses Verhalten zu erwarten oder habe ich das Glück, dass es nicht abstürzt?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage