假设我有:
class MyClass
MY_ENUM = [MY_VALUE_1 = 'value1', MY_VALUE_2 = 'value2']
end
这样的事情是可能的:
p MyClass::MY_VALUE_1 #=> "value1"
为什么? MY_VALUE1
和 MY_VALUE_2
不是 []
中的常量作用域吗?
最佳答案
您可以访问嵌套常量 MY_VALUE_1
,因为它与外部常量 MY_ENUM
在同一范围内:两个常量都在类 MyClass< 的范围内
.
您希望 [...]
构造定义一个新范围,但它没有。在 Ruby 中,只有三件事定义了一个新的范围:
- 使用
class SomeName
定义类 - 使用
module SomeName
定义模块 - 使用
def some_name
定义函数
关于ruby - 为什么我可以在 Ruby 中访问数组中的常量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40829911/