Tag: ruby 2.5

Ruby reverse.each_with_index和delete_at导致最新的Ruby / Rails出现问题

所以,我很清楚在迭代块中移除项目的危险(这是反向循环),我知道Matz提到了一些关于迭代中的突变导致稳定性问题,但我似乎无法想象这一点。 这个例子有点令人费解,我不确定即使解决它也会完全复制这个例子,但我必须尝试。 arr1 = [1, 2, 3, 4, 5] arr2 = [3, 4, 5] puts arr1.inspect puts arr2.inspect arr2.each do |i| arr1.reverse.each_with_index do |j, index| if i == j arr1.delete_at(index) end end end puts arr1.inspect puts arr2.inspect 输出: [1, 2, 3, 4, 5] [3, 4, 5] [4, 5] [3, 4, 5] 应该是什么时候: [1, 2, 3, […]