{:a=>1} 示例 2 {"a"=>"c"}-6ren">
gpt4 book ai didi

ruby - 为什么哈希中的这个字符串键转换为符号?

转载 作者:数据小太阳 更新时间:2023-10-29 06:24:54 24 4
gpt4 key购买 nike

使用 ruby 2.3:

在示例 1 中,字符串键 "a" 自动转换为符号,而在示例 2 中,它仍然是一个字符串。

示例 1

{"a": 1}
# => {:a=>1}

示例 2

{"a"=>"c"}
# => {"a"=>"c"}

我认为 : 与旧式哈希火箭 => 语法相同。到底是怎么回事?为什么我在 Rails 中从未注意到这一点?是 HashWithIndifferentAccess 掩盖了这一点吗?

最佳答案

在 Ruby 2.3(.0) 中,这些都是一样的:

{:"a" => 1}
{"a": 1},
{:a => 1}
{a: 1}

它们都翻译成同一个东西:a 在所有这些情况下都是一个符号。

{"a"=>1} 不同:a 在这种情况下是一个字符串。

关于ruby - 为什么哈希中的这个字符串键转换为符号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36513996/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com