如何从类Item外部访问对象natraj?

时间:2015-06-03 13:13:34

标签: ruby

class Item
    def initialize(hash)
        @my_hash=hash
        return @my_hash
    end
end
natraj=Item.new({name: "pencil", quantity: 500})

1 个答案:

答案 0 :(得分:0)

一般来说,这类问题是在Ruby中使用这样的代码来实现的:

class Item
  attr_reader :name
  attr_reader :quantity

  def initialize(options)
    @name = options[:name]
    @quantity = options[:quantity].to_i
  end

  def to_h
    {
      name: @name,
      quantity: @quantity
    }
  end
end

natraj = Item.new(name: "pencil", quantity: 500)

natraj.name
# => "pencil"
natraj.quantity
# => 500

natraj.to_h
# => {:name=>"pencil", :quantity=>500}

如评论中所述,return方法中的initialize值是一种特殊情况,会被忽略。