Arrays 在Swift中何时对数组使用枚举?
我注意到,当您尝试删除或更改循环中的数组项时,会发生奇怪的事情。但是,在对数组调用Arrays 在Swift中何时对数组使用枚举?,arrays,swift,mutable,Arrays,Swift,Mutable,我注意到,当您尝试删除或更改循环中的数组项时,会发生奇怪的事情。但是,在对数组调用enumerate()时执行此操作时,它会按预期工作。它背后的概念是什么?什么时候应该使用enumerate()?要回答标题中的问题,除了值本身,还需要值的索引时,可以使用enumerate(): 如果需要每个项的整数索引及其值,请改用enumerate()方法迭代数组 for (index, value) in shoppingList.enumerate() { print("Item \(index
enumerate()
时执行此操作时,它会按预期工作。它背后的概念是什么?什么时候应该使用enumerate()
?要回答标题中的问题,除了值本身,还需要值的索引时,可以使用enumerate()
:
如果需要每个项的整数索引及其值,请改用enumerate()
方法迭代数组
for (index, value) in shoppingList.enumerate() {
print("Item \(index + 1): \(value)")
}
enumerate()
提供了一种安全模式,用于在迭代数组元素时修改它们:
for (index, (var value)) in shoppingList.enumerate() {
if value == "something" {
shoppingList[index] = "something-else"
}
}
不清楚你在问什么。您能否提供一个循环与枚举的示例,以及预期和实际的行为?请看一看。您所说的“while generate()”是什么意思,常规循环中使用的方法不是。”“常规”循环也是安全的:
对于数组中的元素{array.removeAll()}
运行没有问题。@MartinR很高兴知道这一点。我想我不应该评论原因,因为可能有太多的部分在起作用(元素是一个类还是一个结构,循环变量是一个var
,数组本身是否已更改,或者只是它的元素,等等)。当然,这个想法是为了演示这个可爱的把戏,我在中间的评论丝毫没有帮助。谢谢