2015-09-11 108 views
-4

我学习Ruby和我收到以下错误,当我写这篇文章的命令行界面:语法错误,意外“”,期待=>

hold = {21, 22, {23, 24}, 25} 
#=> SyntaxError: (irb):1: syntax error, unexpected ',', expecting => 

不应该这样被创造对

#=> {21 => 22, {23,24}=>25} 
+0

现在使用的是什么版本的Ruby? –

+0

你期待的是Perl中的工作,而不是Ruby中的 – slashmili

+1

哈希是键 - 值对 - Ruby没有元组。 – sevenseacat

回答

5

Ruby的hash literal{ }预计逗号形式key => value分离键值

{ 1 => 'a', 2 => 'b' } #=> {1=>"a", 2=>"b"} 
{ :foo => 1, :bar => 2 } #=> {:foo=>1, :bar=>2} 

如果密钥是一个符号,你还可以使用更短的key: value语法(注意,结果散列等同于上面的那个):

{ foo: 1, bar: 2 }  #=> {:foo=>1, :bar=>2} 

你可以使用Hash::[]传递键和值单独的参数:

Hash[21, 22, Hash[23, 24], 25] 
#=> {21=>22, {23=>24}=>25} 

但是创建这样的散列是非常罕见的。

相关问题