每当我从IRB实例化一个新方法时,它会打印出一堆我认为不必要的东西。这是预期的行为吗?我可以阻止它发生吗?
例如,以下代码
class Box
def initialize(index)
@index = index
end
end
box = Box.new(5)
将打印
#<Box:0x000000015836e8 @index=5>
随着更复杂的东西,我在终端中获得了更多。
答案 0 :(得分:9)
答案 1 :(得分:6)
这是预期的行为。 irb是REPL(读取,评估,打印循环)。这意味着它将打印评估您输入的每个连续表达式的结果。调用类的构造函数的结果是新对象。分配结果是指定的任何内容。
您可以覆盖班级的Object#inspect
方法来更改正在打印的内容:
class Box
def initialize(index)
@index = index
end
def inspect
"A box with index #{@index}"
end
end
box = Box.new(5)
# => >A box with index 5