Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Ruby语法中::是什么意思?_Ruby - Fatal编程技术网

在Ruby语法中::是什么意思?

在Ruby语法中::是什么意思?,ruby,Ruby,什么是: @song ||= ::TwelveDaysSong.new 返回@song 如果@song为false(例如它不存在) 创建:twevedaysong对象的新实例@song这是一种惰性初始化@song实例变量的方法 如果已将@song设置为某个真实值,即不是nil或false),则表达式的计算结果就是该值 但是,如果尚未将@song设置为该值,则它将创建类TwelveDaysSong的新实例,并将其分配给@song。然后,与前面一样,表达式的计算结果为@song,但该值现在是对新创

什么是

@song ||= ::TwelveDaysSong.new

返回
@song

如果
@song
为false(例如它不存在)

创建
:twevedaysong
对象的新实例@song

这是一种惰性初始化
@song
实例变量的方法

如果已将
@song
设置为某个真实值,即不是
nil
false
),则表达式的计算结果就是该值

但是,如果尚未将
@song
设置为该值,则它将创建类
TwelveDaysSong
的新实例,并将其分配给
@song
。然后,与前面一样,表达式的计算结果为
@song
,但该值现在是对新创建的
twevedaysong
对象的引用

在类名上使用
意味着它是一个绝对的顶级类;即使在当前模块中定义了
twevedaysong
类,它也将使用顶级类

红宝石::(双分号)

顶级常量由双冒号引用

class TwelveDaysSong
end

a = TwelveDaysSong.new
#I could wrote it like this too
a = ::TwelveDaysSong.new 

module Twelve
  class TwelveDaysSongs
  end
end

b = Twelve::TwelveDaysSong.new
#b is not equal to 
a = ::TwelveDaysSong.new
#neither
a = TwelveDaysSong.new
类也是常量,所以如果有常量

HELLOWOLRD = 'hw'

您可以这样称呼它::HELLOWORLD

我知道名称空间,但我没有看到没有前缀的::used。我想这就是让我困惑的原因。我现在明白了,它指的是根级别的对象名称空间