首页 > 解决方案 > 实例方法只输出类id,不输出方法

问题描述

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

解决方案


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

您可以将代码更改为:

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

它会按预期吠叫。:)


推荐阅读