Я пытаюсь изменить элемент структуры в массиве. Я обнаружил, что вы можете сделать это, обратившись (итерировать) к структуре по индексу, но вы не можете, если используете цикл for in или forEach{}.
struct Person
{
var age = 0
var name = "James"
}
var personArray = [Person]()
personArray += [Person(), Person(), Person()]
personArray.forEach({$0.age = 10}) // error: "Cannot assign to property: '$0' is immutable"
for person in personArray {
person.age = 10 // error: "Cannot assign to property: 'person' is a 'let' constant"
}
for index in personArray.indices {
personArray[index].age = 10 // Ok
}
Может кто-нибудь объяснить?