红宝石冒号前缀字符串

Hai*_*iri 4 ruby

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

rr = {
  id: 215043,
  :'Official Name' => "Google, Inc."
}
Run Code Online (Sandbox Code Playgroud)

这是最多的错误:'Official Name' =>。它看起来像是带有空格的符号。

当我打印它时,我看到:

{:id=>"215043", :"Official Name"=>"Google, Inc."}
Run Code Online (Sandbox Code Playgroud)

请帮助我理解这一点。

Jor*_*ing 5

这是最多的错误:'Official Name' =>。它看起来像是带有空格的符号。

就是这样。

p :'Official Name'.class
# => Symbol
Run Code Online (Sandbox Code Playgroud)

但是,在Hash文字中,您可以将冒号放在末尾,我认为这样会更好一些:

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

rr.keys.each {|key| p [key, key.class] }
# => [:id, Symbol]
#    [:"Official Name", Symbol]
Run Code Online (Sandbox Code Playgroud)

供以后参考,一旦习惯了官方文档,它们就非常易于浏览。在这种情况下,您需要点击doc / syntax / literals.rdoc的链接,然后查看Symbols and Hashes上的部分。