小编jul*_*ong的帖子

Swift 4.2) 使用 for_in/forEach 改变结构数组与按索引访问

我正在尝试修改数组中的结构元素。我发现您可以通过按索引访问(迭代)结构来做到这一点,但如果您使用“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
}
Run Code Online (Sandbox Code Playgroud)

有人可以解释一下吗?

arrays swift swift-structs

6
推荐指数
2
解决办法
3998
查看次数

标签 统计

arrays ×1

swift ×1

swift-structs ×1