如何在迭代数组时正确修改数组
How to properly modify an array while iterating it
在 Crystal 中,我想更改正在迭代的数组 我这样做:
strings = ["A","B","C"]
i = 0
strings.each do |string|
strings[i] = string * 2
i += 1
end
虽然这不是最糟糕的事情,但我觉得应该有一种更惯用的方式来实现它,比如:
strings = ["A","B","C"]
strings.each do |string|
string = string * 2
end
Chrystal 有这样的可能吗?
在这种情况下,最好是不需要额外变量的东西,例如 i
。
如果是这样,它被认为是一种好的做法吗?
您可能正在寻找 Array#map!
在这种情况下 strings.map! {|string| string*2}
完全相同。
在 Crystal 中,我想更改正在迭代的数组 我这样做:
strings = ["A","B","C"]
i = 0
strings.each do |string|
strings[i] = string * 2
i += 1
end
虽然这不是最糟糕的事情,但我觉得应该有一种更惯用的方式来实现它,比如:
strings = ["A","B","C"]
strings.each do |string|
string = string * 2
end
Chrystal 有这样的可能吗?
在这种情况下,最好是不需要额外变量的东西,例如 i
。
如果是这样,它被认为是一种好的做法吗?
您可能正在寻找 Array#map!
在这种情况下 strings.map! {|string| string*2}
完全相同。