红宝石冒号前缀字符串

时间:2019-07-09 16:34:07

标签: ruby

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

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

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

当我打印时,我看到:

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

请帮助我理解这一点。

2 个答案:

答案 0 :(得分:5)

  

这个"HealthChecks": [ { "Name": "Test-Api-Basic", "Uri": "https://localhost:44300/health/live" }, { "Name": "API-1", "Uri": "https://one_more_API/dev/health/live" }, { "Name": "API-2", "Uri": "https://Another_API/health/live" } ] 最多的是错误。它看起来像是带有空格的符号。

就是这样。

:'Official Name' =>

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

p :'Official Name'.class
# => Symbol

为了方便将来参考,official docs相当容易导航。在这种情况下,您将需要访问doc/syntax/literals.rdoc的链接,然后查看SymbolsHashes上的部分。

答案 1 :(得分:1)

这仍然是symbol

如果使用类似的引号将Ruby括起来,则Ruby允许您定义其中包含空格的符号。

签出this answer来查看一个符号示例,该符号带有一个从字符串创建的空格。