Ruby 常量散列和方括号之间的空格导致未定义的方法错误

Ruby 常量散列和方括号之间的空格导致未定义的方法错误,ruby,methods,constants,local-variables,Ruby,Methods,Constants,Local Variables,这很好: hsh = { a: 'str' } hsh [:a] # => "str" 这同样有效: HSH = { a: 'str' } HSH . fetch(:a) # => "str" 这并不是: HSH = { a: 'str' } HSH [:a] # >> NoMethodError (undefined method `HSH' for main:Object) 为什么会这样? 这有记录在案吗 我在摆弄垂直对齐,如果你有: var0 = VERT

这很好:

hsh = { a: 'str' }
hsh [:a] # => "str"
这同样有效:

HSH = { a: 'str' }
HSH . fetch(:a) #  => "str"
这并不是:

HSH = { a: 'str' }
HSH [:a] # >> NoMethodError (undefined method `HSH' for main:Object)
为什么会这样? 这有记录在案吗


我在摆弄垂直对齐,如果你有:

var0 = VERTICAL_ALIGN[GREAT]
var1 = IS_VERY       [GREAT]
你知道它应该做什么,因为你有第一行

但这一条同样有效:


@sawa难道OP只是想知道为什么调用带有空格的常量上的键值而不是非常量对象上的键值时出错吗?@lacostenycoder至少没有写出来。关于好的/坏的/必需的风格评论:即使这样做有效,这仍然是糟糕的风格。阅读代码时,您如何知道
a[b]
是指
a[b]
还是
a([b])
var0 = VERTICAL_ALIGN[GREAT]
var1 =        IS_VERY[GREAT]