【发布时间】:2016-07-30 13:36:27
【问题描述】:
使用 Ruby 2.3:
在示例 1 中,字符串键 "a" 自动转换为符号,而在示例 2 中,它保持为字符串。
示例 1
{"a": 1}
# => {:a=>1}
示例 2
{"a"=>"c"}
# => {"a"=>"c"}
我认为: 与旧式哈希火箭=> 语法相同。到底是怎么回事?为什么我从未在 Rails 中注意到这一点?是 HashWithIndifferentAccess 掩盖了这一点吗?
【问题讨论】:
-
@Zabba 为什么需要添加那个版本?它仅适用于最近的 Ruby。如果 OP 说它有效,则意味着它是最新版本。
-
OP 在问题中提到了该版本,因此删除它是不合适的,因为删除它会改变问题的含义和意图,所以在这里只是原创。
-
不是字符串键,是符号键。没有任何改变。
标签: ruby string hash symbols literals