我们知道,我们可以使用for..in循环迭代Arrays或Dictionaries.但是,我想像我CustomClass这样迭代我自己:
for i in CustomClass {
someFunction(i)
}
Run Code Online (Sandbox Code Playgroud)
哪些操作/协议CustomClass必须支持这一点?
我正在尝试修改数组中的结构元素。我发现您可以通过按索引访问(迭代)结构来做到这一点,但如果您使用“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)
有人可以解释一下吗?