使用“include Enumerable”对每个对象进行Ruby方法调用
我试图学习Ruby教程,但我感到非常困惑。我发现的所有地方似乎都在说,定义实例变量就是这样做的使用“include Enumerable”对每个对象进行Ruby方法调用,ruby,methods,enumerable,Ruby,Methods,Enumerable,我试图学习Ruby教程,但我感到非常困惑。我发现的所有地方似乎都在说,定义实例变量就是这样做的 class Example def fun # CODE end end e = Example.new e.fun # <- Will run your code 当我打电话时 e = Example.new e.each do |elmt| puts elmt end 我得到了错误 NoMethodError: undefined method `each
class Example
def fun
# CODE
end
end
e = Example.new
e.fun # <- Will run your code
当我打电话时
e = Example.new
e.each do |elmt|
puts elmt
end
我得到了错误
NoMethodError: undefined method `each' for nil:NilClass
有谁能帮我弄清楚怎么让它工作吗。我无法找出问题所在,下面是让我相信这应该有效的许多来源中的三个。我显然做错了什么,但我就是看不出来
来源;
书籍:工程软件即服务您有一个打字错误。这是初始化,不是初始化。您的@members实例变量从未分配给,这就是为什么它为零。@LukeTurner如果它是自然英语,那么您的拼写错误被认为是美国对英国的,但Ruby更美国化,而不是英国化。谢谢,顺便说一句:如果你的每个方法所做的只是将块传递给另一个方法,那么让块匿名以减少混乱实际上是有害的,因为如果你给它一个名称,你可以传递它:def each&blk@members.each&blk end。
NoMethodError: undefined method `each' for nil:NilClass