Ruby 队列到数组
Ruby Queue to Array
有没有其他方法可以获取队列对象的所有元素?
def method queue
array = []
until queue.empty? do
array << queue.pop
end
array
end
我正在尝试这样的事情:
def method queue
Array(until queue.empty? do queue.pop end)
end
但是 returns 一个空数组。
使用Integer#times
, Enumerable#map
:
def to_a queue
queue.size.times.map { queue.pop }
end
我会这样写:
def method(queue)
[].tap { |array| array << queue.pop until queue.empty? }
end
Array.new(queue.size) { queue.pop }
所有这些答案都会清空队列,这对我不起作用。
我要去:
class Queue
def to_a
@que.dup
end
end
有没有其他方法可以获取队列对象的所有元素?
def method queue
array = []
until queue.empty? do
array << queue.pop
end
array
end
我正在尝试这样的事情:
def method queue
Array(until queue.empty? do queue.pop end)
end
但是 returns 一个空数组。
使用Integer#times
, Enumerable#map
:
def to_a queue
queue.size.times.map { queue.pop }
end
我会这样写:
def method(queue)
[].tap { |array| array << queue.pop until queue.empty? }
end
Array.new(queue.size) { queue.pop }
所有这些答案都会清空队列,这对我不起作用。
我要去:
class Queue
def to_a
@que.dup
end
end