我正在做以下 Ruby 教程 http://rubymonk.com/learning/books/4-ruby-primer-ascent/chapters/48-advanced-modules/lessons/118-wrapping-up-modules
其中一项练习要求我
...在模块 Math 中定义一个静态方法 square。它显然应该返回传递给它的数字的平方......
为什么只有当我在方法定义前加上“self”前缀时它才有效?例如以下作品:
module Math
def self.square(x)
x ** 2
end
end
但以下不起作用:
module Math
def square(x)
x ** 2
end
end
为什么是这样?作为参考,该方法被称为puts Math.square(6)