ruby中的冒号前缀字符串

ruby中的冒号前缀字符串,ruby,Ruby,我是Ruby新手,刚刚遇到以下代码片段: rr = { id: 215043, :'Official Name' => "Google, Inc." } 最常见的错误是这个:“官方名称”=>。它看起来像一个带有空格的符号 当我打印它时,我看到: {:id=>"215043", :"Official Name"=>"Google, Inc."} 请帮助我理解这一点 最常见的错误是这个:“官方名称”=>。它看起来像一个带有空格的符号 这就是事实 p :'Official

我是Ruby新手,刚刚遇到以下代码片段:

rr = {
  id: 215043,
  :'Official Name' => "Google, Inc."
}
最常见的错误是这个
:“官方名称”=>
。它看起来像一个带有空格的符号

当我打印它时,我看到:

{:id=>"215043", :"Official Name"=>"Google, Inc."}
请帮助我理解这一点

最常见的错误是这个
:“官方名称”=>
。它看起来像一个带有空格的符号

这就是事实

p :'Official Name'.class
# => Symbol
但是,在散列文字中,您可以将冒号放在末尾,我认为这样读起来更好一些:

rr = {
  id: 215043,
  "Official Name": "Google, Inc.",
}

rr.keys.each {|key| p [key, key.class] }
# => [:id, Symbol]
#    [:"Official Name", Symbol]
作为将来的参考,一旦你习惯了,你就可以很容易地浏览它们。在这种情况下,您需要按照的链接,然后查看和上的部分。

这仍然是一个问题

Ruby允许您定义一个符号,如果您用引号将其括起来,那么该符号中就有空格

查看一个符号示例,其中包含从字符串创建的空格。

也可以是wild:
x=“Google”:“{x},Inc.”
也是有效的。考虑:
“猫”。to#sym#=>:猫
“猫九条命”。to#sym=>:“猫九条命”
“九条命”。to#sym=>:“九条命”
。你能从这些结果中推断出什么?