相关疑难解决方法(0)

添加"for in"支持以迭代Swift自定义类

我们知道,我们可以使用for..in循环迭代ArraysDictionaries.但是,我想像我CustomClass这样迭代我自己:

for i in CustomClass {
    someFunction(i)
}
Run Code Online (Sandbox Code Playgroud)

哪些操作/协议CustomClass必须支持这一点?

swift

32
推荐指数
2
解决办法
1万
查看次数

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
查看次数

标签 统计

swift ×2

arrays ×1

swift-structs ×1