在Rubymonk网站上,我遇到了关于inspect vs to_s部分的交互式问题(2.3显示对象:puts和p,to_s并检查)。他们要求覆盖to_s方法>'以便它返回一个字符串同时包含物品的名称和数量。'
我不知道如何处理这一部分。我确实跳过了本教程,所以我可能错过了如何解决可能已经展示如何解决这个问题的类似问题。
我在字符串中使用了puts方法和表达式插值:
class Item
def initialize(item_name, qty)
@item_name = item_name
@qty = qty
end
def to_s
puts '#{@item_name} and #{@qty}'
end
end
item = Item.new("a",1)
puts item
p item
答案 0 :(得分:0)
尝试:
def to_s
p "#{@item_name} and #{@qty}"
end
带双引号和p
答案 1 :(得分:0)
您的代码存在两个问题:
puts
并返回puts
的结果,但是,如果您查看puts
的文档,你会看到它总是返回nil
所以,你的代码应该是
class Item
def initialize(item_name, qty)
@item_name = item_name
@qty = qty
end
def to_s
"#{@item_name} and #{@qty}"
end
end
item = Item.new('a', 1)
puts item
p item