我有一个模块 Shish(其作用类似于抽象类)和一个访问者类 Only_Onions。
我想在 Shish 模块中实例化 Only_Onions ,以便所有扩展 Shish 的类都可以使用该对象来确定它们是否只有 __onions 。
module Shish
only_onions_class = Only_Onions.new
end
class Only_Onions
def for_skewer
return true
end
end
class Skewer
include Shish
def only_onions
return only_onions_class.for_skewer
end
def veg?
return true
end
end
但我收到错误“未初始化常量 Shish::Only_Onions (NameError)”。这是什么意思?
声明的顺序具有效力。 Shish 不知道代码中的 Only_Onions。如果将其更改为这样,则在定义模块 Shish 时已经声明了 Only_Onions:
class Only_Onions
def for_skewer
return true
end
end
module Shish
only_onions_class = Only_Onions.new
end
class Skewer
include Shish
def only_onions
return only_onions_class.for_skewer
end
def veg?
return true
end
end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)