如何从具有空格的字符串创建符号?

时间:2013-03-12 04:45:37

标签: ruby hash symbols

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

当哈希的键是包含空格的字符串时,它可以正常工作。

如:

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

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

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

显然这不起作用。

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

4 个答案:

答案 0 :(得分:16)

自己尝试

"Lord of the rings".to_sym
#=> :"Lord of the rings"

答案 1 :(得分:7)

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

来做到这一点
{:Avatar => 5, :"Lord of the rings" => 4, :Godfather => 4}

答案 2 :(得分:2)

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

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

答案 3 :(得分:2)

晚会,但另一种解决方法是做以下事情:

movies = Hash.new

movies["the little mermaid".to_sym] = 4