有没有办法使 for .. in
循环返回集合中条目的引用而不是副本?
假设我有一个CGPoint
对象数组points
,我想循环遍历它们并将每个点传递给一个函数adjustPoint
,该函数可以使用inout
参数修改这个点。
现在做以下操作是行不通的,因为for .. in
循环将点作为不可变的/可变的(取决于我是否使用var
)副本返回到数组中实际的点:
for var point in points {
adjustPoint(point: &point) // This function only changes the copy
}
目前,我所看到的唯一方法是循环索引:
for i in 0..<points.count {
adjustPoint(point: &points[i])
}
这是唯一的方法吗?还是可以使用for..in循环来实现?注意:我阅读了这个问题,它是相当久以前的(我认为是Swift 1),所以我想也许在此期间他们已经改变了一些东西:turn for in loops local variables into mutable variables
points = points.map { adjustPoint(point: $0) }
将解决问题。 - jjatie