gpt4 book ai didi

ruby - Ruby 中未初始化的常量 MyClass (NameError)

转载 作者:数据小太阳 更新时间:2023-10-29 06:53:55 25 4
gpt4 key购买 nike

我有一个模块 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

关于ruby - Ruby 中未初始化的常量 MyClass (NameError),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/872701/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com