Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
class MyClass def fun puts self end def self.fun2 puts self end end mine = MyClass.new mine.fun MyClass.fun2
上面的代码应该打印 self 两次,在这种情况下它们都是 MyClass。但是,实际输出是
#<MyClass:0x10f6a82d0> MyClass
它们有两种不同的形式。我想知道它们是否真的代表了不同的事物。
#<MyClass:0x10f6a82d0>表示类的一个实例MyClass。 MyClassf.fun2返回类本身。
#<MyClass:0x10f6a82d0>
MyClass
MyClassf.fun2
第一个结果是MyClass实例的字符串表示,而第二个结果是 MyClass 类的字符串表示。
如果您制作了另一个mine2 = MyClass.new并打印了它,您将在最后得到一个不同的十六进制标识符,以将它与您的其他实例区分开来。
mine2 = MyClass.new