在Ruby中请求类常量值将返回该类中所有定义的值

在Ruby中请求类常量值将返回该类中所有定义的值,ruby,Ruby,您好,我在刚刚加入的Ruby项目中遇到了一段有趣的代码。我试图用谷歌来解释我正在经历的行为的起因,但没有任何运气 我有这样的类定义 class Values First = 1, Second = 2, Third = 3 end 在另一个地方,需要这样的值:Values::First 这是回报 1 2 3 如果我调用Values::Second或Values::Third,它正确地只返回单个值。 有人能解释为什么行以逗号字符结尾时会发生这种情况吗? 谢谢您的回答。您

您好,我在刚刚加入的Ruby项目中遇到了一段有趣的代码。我试图用谷歌来解释我正在经历的行为的起因,但没有任何运气

我有这样的类定义

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]

非常感谢您的解释。