2013-02-20 53 views
1
hash = {:symbol, 'mental'} 

因爲我發現上面點綴着一個正在進行的項目,我無法弄清楚這是否是由於舊版本的Ruby引起的。這是有效的ruby語法嗎?

+2

什麼是IRB告訴你嗎? – 2013-02-20 17:49:26

+0

1.9.3無效,我知道。但是我對Ruby(年)相當陌生。不過,我從來沒有見過這種語法。 – 2013-02-20 17:50:03

回答

10

有效的Ruby 1.8當你有才能正確的鍵值對。你需要有偶數個散列創作元素:

hash = {:symbol, 'mental'}一樣hash = {:symbol => 'mental'}

一些例子:

hash = {:symbol, 'mental', :name,'abc'} 
=> {:symbol=>"mental", :name=>"abc"} 

hash = {:symbol, 'mental', :name,'abc', :b} 
=> Syntax Error 
+2

這個語法看起來非常不尋常,並且因爲它與1.9不兼容,所以無論它存在在哪裏,都會被戳穿。 – tadman 2013-02-20 18:17:31

+0

@tadman是的,這與1.9不兼容。 1.9中哈希值的變化很多。 – codeit 2013-02-20 18:31:36

1

看起來像一個錯字。我覺得行應爲:

hash = {:symbol => 'mental'} 

這似乎是有效的1.8.7紅寶石雖然...

+0

嗯..我想這就是爲什麼。項目最初是1.8。 – 2013-02-20 17:52:15