Ruby 为什么我在迭代数组中得到错误的结果?
我在一个对象中的数组上迭代。我试图将数组的元素弹出到另一个对象数组中。见下文Ruby 为什么我在迭代数组中得到错误的结果?,ruby,arrays,Ruby,Arrays,我在一个对象中的数组上迭代。我试图将数组的元素弹出到另一个对象数组中。见下文 @van.bikes.each { @garage<<( @van.removebike )} def removebike @bikes.pop end @van.bikes.each{@garage这样做的原因是,当ruby在数组上迭代时,它会根据原始数组大小设置迭代次数。当您从该数组中弹出元素时,大小会发生变化,因此迭代无法正常工作 你可以用 @van.bikes.count.time
@van.bikes.each { @garage<<( @van.removebike )}
def removebike
@bikes.pop
end
@van.bikes.each{@garage这样做的原因是,当ruby在数组上迭代时,它会根据原始数组大小设置迭代次数。当您从该数组中弹出元素时,大小会发生变化,因此迭代无法正常工作
你可以用
@van.bikes.count.times { @garage<<( @van.removebike )}
@van.bikes.count.times{@garage你也可以试试这个
@garage = []
@van.bikes.each{|bike| @garage << bike}
@garage=[]
@van.bikes.each{| bike |@garage或just@garage+=@van.bikes;@van.bikes=[]
:)您还可以提供类结构吗?