Der Iterator ist für eine Klasse wandelbar:Warum sind Iteratoren in forEach für eine Struktur unveränderlich, aber für eine Klasse veränderbar?
var selections: [Selection] = []
class Selection {
var selected: Bool
init(selected: Bool) {
self.selected = selected
}
}
selections.forEach({ $0.selected = false }) // This works
aber nicht wandelbar für eine Struktur:
var selections: [Selection] = []
struct Selection {
var selected: Bool
}
selections.forEach({ $0.selected = false }) // This doesn't work because $0 is immutable
Da Klassen sind * Referenztypen *. Der Iterator ist in beiden Fällen konstant. –
Vergleichen [Warum sind die Eigenschaften eines unveränderlichen Objekts in Swift veränderbar?] (Http://stackoverflow.com/questions/25827643/why-are-properties-of-an-immutable-object-mutable-in-swift). –