在Ruby中请求类常量值将返回该类中所有定义的值
您好,我在刚刚加入的Ruby项目中遇到了一段有趣的代码。我试图用谷歌来解释我正在经历的行为的起因,但没有任何运气 我有这样的类定义在Ruby中请求类常量值将返回该类中所有定义的值,ruby,Ruby,您好,我在刚刚加入的Ruby项目中遇到了一段有趣的代码。我试图用谷歌来解释我正在经历的行为的起因,但没有任何运气 我有这样的类定义 class Values First = 1, Second = 2, Third = 3 end 在另一个地方,需要这样的值:Values::First 这是回报 1 2 3 如果我调用Values::Second或Values::Third,它正确地只返回单个值。 有人能解释为什么行以逗号字符结尾时会发生这种情况吗? 谢谢您的回答。您
class Values
First = 1,
Second = 2,
Third = 3
end
在另一个地方,需要这样的值:Values::First
这是回报
1
2
3
如果我调用Values::Second或Values::Third,它正确地只返回单个值。
有人能解释为什么行以逗号字符结尾时会发生这种情况吗?
谢谢您的回答。您的语法将
第一个
定义为一个数组,同时也将第二个
定义为2
,将第三个
定义为3
。删除逗号,将First
设置为1
:
class Values
First = 1
Second = 2
Third = 3
end
首先,这些是常量而不是类变量 逗号表示这与
First = 1, Second = 2, Third = 3
First = 1, (Second=2), (Third=3)
First = 1,2,3
这和
First = 1, Second = 2, Third = 3
First = 1, (Second=2), (Third=3)
First = 1,2,3
这将设置第二和第三,但在其他方面与相同
First = 1, Second = 2, Third = 3
First = 1, (Second=2), (Third=3)
First = 1,2,3
首先设置为数组[1,2,3]非常感谢您的解释。