小编ver*_*coe的帖子

为什么ruby返回对象的值而不是整个对象?

只是为了练习我用ruby实现了一个队列类.队列中的元素是节点,它们在另一个类中实现.这些节点保持一定的值,并且在添加到队列时还可以保存有关其后继的信息.节点类如下所示:

class Node
attr_accessor :value, :successor

def initialize(value)
    @value     = value
    @successor = nil
end

def set_successor(successor)
    @successor = successor
end

def get_successor()
    @successor
end

def get_value()
    @value
end

def to_s()
    @value.to_s
end
end
Run Code Online (Sandbox Code Playgroud)

在创建了诸如object1 = Node.new(12)和之类的对象之后object2 = Node.new("Foo"),我可以使用该get_value方法来获取对象值,这正是该方法应该做的事情.

puts object1.get_value
==> 12
puts object2.get_value
==> Foo
Run Code Online (Sandbox Code Playgroud)

然而,当只使用puts object1puts object2仍然是对象值时,显示12和Foo.在这里,我期待一个更加神秘的消息,告诉我这是类节点的一个对象,它就是对象.

puts object1.class
==> Node
Run Code Online (Sandbox Code Playgroud)

那么,是否有人知道一个提示,为什么显示对象值,实际上应该显示整个对象?

ruby object

1
推荐指数
1
解决办法
215
查看次数

标签 统计

object ×1

ruby ×1