我遇到了一个挑战:探索方法查找在Ruby中的工作原理。这是实验性代码:
class Object
def method_missing(*args)
@count = @count.to_i + 1
puts "Object: #{ @count }"
super
end
end
module Module1
def method_missing(*args)
puts 'Module1'
super
end
end
module Module2
def method_missing(*args)
puts 'Module2'
super
end
end
module Module3
def method_missing(*args)
puts 'Module3'
super
end
end
class Class1
include Module1
def method_missing(*args)
puts 'Class1'
super
end
end
class Class2 < Class1
include Module3
include Module2
def method_missing(*args)
puts 'Class2'
super
end
end
test_obj = Class2.new
test_obj.testrun # non existing method
在Ruby 2.3.0中,它似乎正常工作。但是在Ruby 2.3.3中它有奇数输出和循环。即使我评论最后两行(#test_obj = Class2.new和#test_obj.testrun),它也会在输出中循环,但必须没有。请帮助找出问题的原因。