2013-05-01 120 views
8

我應該使用嗎?你想要什麼Ruby 2.0中正確的哈希語法是什麼?

{ :first_name => "Mathieu", :last_name => "Jackson" } 

{ first_name: "Mathieu", last_name: "Jackson" } 
+0

原來可以換成後者。如果不是,那會顯示語法錯誤。 – 2013-05-01 13:24:42

+1

@sawa OP不問什麼可行,而是應該使用什麼「應該」。這可能是脫離主題,但僅此而已。 – 2013-05-01 13:57:12

+0

@DaveNewton對於文字你是對的,但如果你看標題,它會問什麼是有效的。 – sawa 2013-05-01 13:59:45

回答

1

使用。這沒有神聖的意義。但強烈建議您統一使用它。

2

沒有「應該」。

我更喜歡1.9語法,除非有符號作爲值,那麼我認爲它看起來很愚蠢。

這意味着我不統一使用它們,它取決於散列值是什麼–,但我總是在一個即時散列中使用相同的樣式。

7

兩者沒有區別,所以是個人喜好。雖然我希望大多數人爲2.0寫新代碼將使用第二種格式。

重要的是要注意,如果你正在爲開源/公共消費,並希望廣泛的用戶羣,你應該使用哈希的「老」的風格是很重要的。 Ruby 1.8.x以及除RMI之外的JRuby和其他ruby實現都不支持簡潔語法。

+0

也JRuby的支持:A => 1個語法,IIRC – poseid 2013-05-01 13:27:44

+0

正確的,因爲JRuby的1.7。 0簡潔的語法寫了默認值(1.9模式),但預期更早版本/使用散列的舊式。 – 2013-05-01 13:32:01

2

第一個應該使用,如果你正在尋找向後兼容性。但第二個是整潔。