Ruby类返回值

wil*_*ill 1 ruby

我正在学习Ruby并做了一个课程来帮助:

class WhatImDoing
    def initialize
        puts "not doing anything"
    end
end
Run Code Online (Sandbox Code Playgroud)

输出:

not doing anything
#<WhatImDoing:0xb74b14e8>
Run Code Online (Sandbox Code Playgroud)

我很好奇,第二行是什么?它是我创建的WhatImDoing对象的引用位置吗?我可以通过这个位置访问对象(如指针或其他东西)吗?等等......一般来说,只是想要更好地理解Ruby.

谢谢.

Dav*_*ton 6

第二行是输出irb,显示最后一个语句的返回值.

如果您设置的值等于该值:

> class WhatImDoing
    def initialize
      puts "not doing anything"
    end

    def ohai
      puts "Ohai"
    end
  end
> tmp = WhatImDoing.new
=> #<WhatImDoing:0x5cd5a2a9>
Run Code Online (Sandbox Code Playgroud)

你可以用它:

> tmp.ohai
Ohai
Run Code Online (Sandbox Code Playgroud)

如果你有自定义to_s它会显示相反:

> class WhatImDoing
    def to_s
      "#{super} kthxbai"
    end
  endt
> tmp = WhatImDoing.new
=> #<WhatImDoing:0x3e389405> kthxbai 
Run Code Online (Sandbox Code Playgroud)