【问题标题】:How to display multiple items using puts?如何使用 puts 显示多个项目?
【发布时间】:2020-12-19 08:36:56
【问题描述】:

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

当我使用 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

【问题讨论】:

    标签: ruby class puts ruby-hash


    【解决方案1】:

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

    def display
      puts "Thank you for coming!"
    
      @order_items.each do |name, quantity|
        puts "#{quantity} #{name}"
      end
    end
    

    【讨论】:

    • 很好用。谢谢我想我每天都在学习新东西。 :)
    【解决方案2】:

    下面的代码适合你

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-19
      • 2021-10-15
      • 2021-12-05
      • 1970-01-01
      • 1970-01-01
      • 2020-10-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多