Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 在Swift中何时对数组使用枚举?_Arrays_Swift_Mutable - Fatal编程技术网

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
,数组本身是否已更改,或者只是它的元素,等等)。当然,这个想法是为了演示这个可爱的把戏,我在中间的评论丝毫没有帮助。谢谢