-3
class Item
def initialize(hash)
@my_hash=hash
return @my_hash
end
end
natraj=Item.new({name: "pencil", quantity: 500})
class Item
def initialize(hash)
@my_hash=hash
return @my_hash
end
end
natraj=Item.new({name: "pencil", quantity: 500})
通常這類問題走近紅寶石這樣的代碼:
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}
正如在評論中指出,在initialize
方法return
值是一個特例,被忽略。
'initialize'將永遠返回對象本身,不管是什麼。所以在這種情況下,natraj是一個'Item'。您可以將'attr_reader:my_hash'或'attr_accessor:my_hash'添加到該類,然後使用'natraj.my_hash'進行訪問。 'attr_reader'將創建一個getter方法,其中'attr_accessor'將生成getter和setter方法。 – engineersmnky
謝謝。有用。直接打印natraj,我們得到Item 0x251f820。 什麼是物品代碼? –
我認爲這是所討論對象的內存指針,儘管它沒有什麼意義,因爲它是實現和解釋器特定的。 – engineersmnky