14

我正在为电影名称存储创建一个 Ruby 哈希。

当哈希的键是包含空格的字符串时,它工作得很好。

如:

movies = {"Avatar" => 5, "Lord of the rings" => 4, "Godfather" => 4}

现在我试图用符号替换字符串的使用:

movies = {Avatar: 5, Lord of the rings: 4, Godfather: 4}

显然那是行不通的。

Ruby 如何处理符号命名中的空格?

4

4 回答 4

18

自己试试

"Lord of the rings".to_sym
#=> :"Lord of the rings"
于 2013-03-12T04:51:31.953 回答
7

我不确定为什么要在键值中包含空格时要使用符号,但是您可以这样做。你只是不能使用<symbol>: <value>语法来做到这一点......

{:Avatar => 5, :"Lord of the rings" => 4, :Godfather => 4}
于 2013-03-12T04:50:46.037 回答
3

要制作带空格的符号,请输入冒号,后跟带引号的字符串。对于您的示例,您将输入:

movies = {:Avatar => 5, :'Lord of the rings' => 4, :Godfather => 4}
于 2014-03-24T07:21:11.163 回答
2

聚会迟到了,但解决此问题的另一种方法是执行以下操作:

movies = Hash.new

movies["the little mermaid".to_sym] = 4 
于 2015-07-31T22:03:54.900 回答