如何使用puts显示多个项目?

How to display multiple items using puts?

我编写了一个带有旅游项目的旅游应用程序,我试图在最后显示订单。

当我使用 puts @order_items 时,两次旅行我得到 {"SevendaySurfSportTour"=>2}

我想显示 2 SevendaySurfSportTour 最后。但我不知道如何,任何帮助都会好吗?

class TourOrder
    def initialize
        @order_items = Hash.new(0)
    end
    def add_item(name, quantity)
        @order_items[name] += quantity
    end
    def get_items
        return @order_items
    end

    def display
        puts "Thank you for coming!"
        puts @order_items
    end
end

@order_items 是一个散列,如果是这种散列的字符串表示形式,打印出来的是什么。当你想以不同的方式格式化输出时,你必须自己实现它——例如:

def display
  puts "Thank you for coming!"

  @order_items.each do |name, quantity|
    puts "#{quantity} #{name}"
  end
end

以下代码适合您

class TourOrder
  def initialize
    @order_items = Hash.new(0)
  end
 
  def add_item(name, quantity)
    @order_items[name] += quantity
  end
 
  def get_items
    @order_items
  end

  def display
    puts "Thank you for coming!"
    puts items 
  end

  def items
    @order_items.collect{ |k, v| "#{v} #{k}"}
  end
end

t = TourOrder.new
t.add_item('SevendaySurfSportTour', 2)
t.add_item('Foo', 4)
t.add_item('Bar', 1)
t.display
=> Thank you for coming!
   2 SevendaySurfSportTour
   4 Foo
   1 Bar