【发布时间】:2017-03-03 12:35:00
【问题描述】:
当我执行以下操作时:
h = { "a": 123 }
Ruby 自动将键转换为符号。
h[:a] # => 123
h["a"] # => nil
如何防止这种行为?我使用字符串键创建了哈希,并希望保持这种状态,而不必总是调用Hash#stringify_keys。
【问题讨论】:
-
key: value只是:key => value的快捷方式,因此在您的示例中实际上没有字符串键 -"a": 123变为:"a" => 123(注意前导:) -
如果 { "a": 123 } 在底层使用 HashWithIndifferentAccess 可能会更好,而不是 Hash。
-
@Joerg:欢迎您提交功能请求 :)
-
@SergioTulentsev 请停止提供这样的建议。
HashWithIndifferentAccess与 ruby 无关 :) -
@mudasobwa: 你知道我知道 :)
标签: ruby-on-rails ruby string syntax symbols