Swift 中带有数组的 For-In 循环中迭代器元素的可变性

FTN*_*mad 5 arrays iterator immutability for-in-loop swift

我在 Swift 3.0 中有一些代码,就像这样尝试更新元素数组中的属性......

for point in listOfPoints {
    var pointInFrame : Float = Float(point.position.x * sensorIncomingViewPortSize.width) + Float(point.position.y)
    point.status = getUpdateStatus( pointInFrame )
}
Run Code Online (Sandbox Code Playgroud)

但是我收到一个编译错误:“无法分配给属性:‘point’是一个‘let’常量”[第 3 行]

无论如何,有没有办法使迭代器(点)在 Swift 中可变,就像如何使用“inout”作为函数参数?

或者你应该以另一种方式完成这项任务?

提前致谢。

斯坦

Ras*_*n L 5

只需将其更改为var而不是let您声明的位置即可pointlet是一个constant.

  • 假设“point”是一个值类型元素,将其注释为“var”只会使循环内可用的副本可变。改变该副本不会影响数组中的点。 (4认同)