2

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

我有这样的类定义

class Values
    First = 1,
    Second = 2,
    Third = 3
end

在其他地方有这样的价值呼唤 Values::First this return

1
2
3

如果我调用 Values::Second 或 Values::Third,它只会正确返回单个值。有人可以解释为什么当行以逗号字符结尾时会发生这种情况吗?谢谢您的回答。

4

2 回答 2

7

首先,这些是常量而不是类变量。

逗号表示这与

First = 1, Second = 2, Third = 3

这与

First = 1, (Second=2), (Third=3)

这设置了第二和第三,但在其他方面与

First = 1,2,3

将 First 设置为数组 [1,2,3]

于 2013-07-04T07:17:48.850 回答
2

您的语法定义First为一个数组,同时也在过程中定义Second2Thirdas 3。删除逗号以First设置为1

class Values
    First = 1
    Second = 2
    Third = 3
end
于 2013-07-04T07:17:22.087 回答