module Add
def addition
sum=1+2
puts sum
end
a=Add.addition
谁能告诉我什么,我缺少的,为什么我收到此错误 - >NoMethodError红宝石模块
未定义的方法`除”的添加:模块(NoMethodError)
module Add
def addition
sum=1+2
puts sum
end
a=Add.addition
谁能告诉我什么,我缺少的,为什么我收到此错误 - >NoMethodError红宝石模块
未定义的方法`除”的添加:模块(NoMethodError)
您在混淆类方法和实例方法。你的定义:
module Add
def addition
...
end
end
定义方法上的Add
实例,而你所谓的模块Add
上的方法。如果要定义类/模块方法,则需要定义如下:
module Add
def self.addition
...
end
end
如果你想要能够直接调用它,把它定义为一个可直接访问方法:
def self.addition
# ...
end
或者你可以使用这个总是返工:
module Add
# ...(methods)...
extend self
end
那里会自动将所有混入类型的方法提升为可直接访问的方式。
您也可以更有选择性地标记它们是这样的:
module Add
def addition
# ...
end
module_method :addition
end
该方法随后可无论是作为Add.addition
或者一些其它的模块或类调用include Add
。