【问题标题】:Ruby Queue to ArrayRuby 队列到数组
【发布时间】:2016-04-01 13:56:17
【问题描述】:

除此之外还有其他方法可以获取队列对象的所有元素吗?

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

但这会返回一个空数组。

【问题讨论】:

标签: arrays ruby loops queue


【解决方案1】:
Array.new(queue.size) { queue.pop }

【讨论】:

【解决方案2】:

使用Integer#timesEnumerable#map

def to_a queue
  queue.size.times.map { queue.pop }
end

【讨论】:

    【解决方案3】:

    我会这样写:

    def method(queue)
      [].tap { |array| array << queue.pop until queue.empty? }
    end
    

    【讨论】:

      【解决方案4】:

      所有这些答案都清空队列,这对我不起作用。

      我要去:

      class Queue
        def to_a
          @que.dup
        end
      end
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-11-09
        • 1970-01-01
        • 1970-01-01
        • 2017-07-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多