Ruby 方法调用每个使用“包含可枚举”

Luk*_*ner -1 ruby methods enumerable

我试图按照 Ruby 教程进行操作,但我感到非常困惑。我发现的任何地方似乎都说定义实例变量是这样完成的;

class Example
  def fun
    # CODE
  end
end

e = Example.new
e.fun     # <- Will run your code
Run Code Online (Sandbox Code Playgroud)

但是我真的不明白为什么这不起作用

class Example
  include Enumerable

  def initialise
    @members = ["a", "b"]
  end

  def each
    @members.each do |member|
      yield member
    end
  end

end
Run Code Online (Sandbox Code Playgroud)

当我打电话

e = Example.new

e.each do |elmt|
  puts elmt
end
Run Code Online (Sandbox Code Playgroud)

我收到错误

NoMethodError: undefined method `each' for nil:NilClass
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮我弄清楚如何让这个工作。我不知道出了什么问题,下面是让我相信这应该有效的众多来源中的 3 个。我显然做错了什么,但我就是看不到

来源; http://ruby.about.com/od/advancedruby/ss/Using-The-Enumerable-Module.htm http://www.railstips.org/blog/archives/2009/05/11/class-and-instance -methods-in-ruby/ 书籍:工程软件即服务

Ser*_*sev 5

你有一个错字。是initialize,不是initialise。您的@members实例 var 从未分配给,这就是为什么它是nil.