我在 Ruby 中有这段代码。
class Superheros
class<<self
def foo1(param1)
print "foo1 got executed\n"
end
def foo1
print "foo1 without param got executed\n"
end
def foo3(param1,param2)
print "foo3 got executed\n"
end
end
end
print Superheros.foo3(2,3)
print Superheros.foo1
print Superheros.foo1
print Superheros.foo1(5)
我得到错误Superheros.foo1(5)
。但我已经有了foo1(param1)
与之匹配的功能,但它给了我一个错误
`foo1': wrong number of arguments (1 for 0) (ArgumentError)
这是为什么?PS:我发现如果我删除不带参数的函数名,Superheros.foo1(5)
效果很好。