Ruby 新的类定义和范围解析运算符

Ruby 新的类定义和范围解析运算符,ruby,Ruby,我在Ruby脚本中创建了一个简单的Ruby类,如下所示: class Rock::Stone end 在命令提示下运行脚本时,我得到: `<main>': uninitialized constant Rock (NameError) `:未初始化的常量Rock(NameError) 为什么会这样?我认为在类defs中允许使用范围解析运算符?必须首先声明封装模块/类。试试这个: module Rock class Stone end end 我认为您可能需要首先创建一

我在Ruby脚本中创建了一个简单的Ruby类,如下所示:

class Rock::Stone
end
在命令提示下运行脚本时,我得到:

`<main>': uninitialized constant Rock (NameError)
`:未初始化的常量Rock(NameError)

为什么会这样?我认为在类defs中允许使用范围解析运算符?

必须首先声明封装模块/类。试试这个:

module Rock
  class Stone
  end
end

我认为您可能需要首先创建一个类或模块
Rock
,然后才能存在
Rock::Stone

所以线程可能会有所帮助

我以为在类def中允许范围解析操作符

它们是允许的,但包含的模块(或类)必须首先存在:

module Rock
end

class Rock::Stone
end

Rock::Stone.new
# => #<Rock::Stone:0x00000000a38248>
模块岩石
结束
岩石类:石头
结束
石头
# => #