Instance方法只输出类id,而不是方法输出

Pra*_*al1 0 ruby

我试图看看是否可以使用简单的do语句传输实例变量的属性.

class Dog
  def initialize(name, age)
    @name = name
    @age = age
  end

  def bark
    puts 'Woof'
    puts 'Woof'
    puts 'Woof'
  end
end

bo = Dog.new do |word|
  word.bark
end
Run Code Online (Sandbox Code Playgroud)

为什么它返回类id而不是函数的输出?

Ily*_*hov 5

正如在注释中建议的那样,将块传递给new语句是没有意义的.

您可以将代码更改为:

bo = Dog.new('Rusty', 3).tap do |word|
  word.bark
end
Run Code Online (Sandbox Code Playgroud)

它会像预期的那样吠叫.:)