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

问题描述 投票:0回答:1

我试图看看是否可以使用简单的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

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

ruby
1个回答
5
投票

正如在评论中建议的那样,将块传递给new语句是没有意义的。

您可以将代码更改为:

bo = Dog.new('Rusty', 3).tap do |word|
  word.bark
end

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

© www.soinside.com 2019 - 2024. All rights reserved.