ruby模块中的NoMethodError
谁能告诉我我遗漏了什么以及为什么我会出现这个错误->ruby模块中的NoMethodError,ruby,module,Ruby,Module,谁能告诉我我遗漏了什么以及为什么我会出现这个错误-> Add:Module(NoMethodError)的未定义方法“addition”如果您希望能够直接调用它,请将其定义为可直接访问的方法: module Add def addition sum=1+2 puts sum end a=Add.addition 或者,您也可以随时使用以下方法对此进行返工: def self.addition # ... end 这将自动将所有mixin类型的方法提升为可直接访问 您还可以
Add:Module(NoMethodError)的未定义方法“addition”如果您希望能够直接调用它,请将其定义为可直接访问的方法:
module Add
def addition
sum=1+2
puts sum
end
a=Add.addition
或者,您也可以随时使用以下方法对此进行返工:
def self.addition
# ...
end
这将自动将所有mixin类型的方法提升为可直接访问
您还可以像这样更有选择性地标记它们:
module Add
# ...(methods)...
extend self
end
然后,该方法可用作
Add.addition
,或者如果一些其他模块或类调用包括Add
,则会混淆类方法和实例方法。你的定义:
module Add
def addition
# ...
end
module_method :addition
end
定义Add
实例上的方法,而调用模块Add
上的方法。如果要定义类/模块方法,需要定义如下:
module Add
def addition
...
end
end
module Add
def self.addition
...
end
end