Ruby Docs Mixin示例 - 参数数量错误

时间:2012-08-14 21:44:21

标签: ruby

ruby​​-docs.org教程有section on Modules,其中介绍了Mixins的概念。 给出的示例将第一个参数作为字符串引用并打印出来。但我在代码中看到参数没有接收器,并且执行失败了ArgumentError

# Ruby module Mixin example.

module Debug
  def whoAmI?
    "#{self.type.name} (\##{self.id}): #{self.to_s}"
  end
end
class Phonograph
  include Debug
  # ...
end
class EightTrack
  include Debug
  # ...
end
ph = Phonograph.new("West End Blues")
et = EightTrack.new("Surrealistic Pillow")
ph.whoAmI? #»   "Phonograph (#537766170): West End Blues"
et.whoAmI? #»   "EightTrack (#537765860): Surrealistic Pillow"

我的问题是正确修复此代码的方法是什么?另外,如果有人可以启发,为什么教程中的例子是错误的。 ruby的版本之间有什么变化吗?

[tw-mbp13-skumaran ruby​​] $ ruby​​ ruby​​23.rb ruby23.rb:16:in initialize': wrong number of arguments (1 for 0) (ArgumentError) from ruby23.rb:16:in new'     来自ruby23.rb:16

1 个答案:

答案 0 :(得分:1)

# ...表示代码中缺少多个方法。试试这个:https://gist.github.com/3353490