2013-01-25 51 views
1

我看到一個Rails應用程序這樣一行:這裏的方括號是什麼意思?

PAYMENT_TYPE是一個字符串數組,和信t被用於Rails的國際化。

我不知道這裏如何使用方括號。顯然它們不適用於數組或方法。我會將其重寫爲{|p| t('.payment_type.'+p) }

那麼這個例子中的Ruby語法是什麼?

回答

2

Ruby返回方法或塊的最後一條語句。在這種情況下,使用括號,塊返回兩個項目的數組,因此在map中調用該塊,如果PAYMENT_TYPES有三個項目,則會產生類似[ [a1, b1], [a2, b2], [a3, b3] ]之類的內容。

2

顯然,他們是不是數組或方法

嗯,這是數組文本

[t('.payment_type.'+p), p] 
#^first element  ^second 

我將改寫這只是......

如果這將適用於 你先走。我們不知道您的應用的具體內容。

0

你是正確的方括號不只是用於數組,你也可以調用Procs。

proc = lambda { |name| "Hello, #{name}" } 
proc.call('Bob') 
=> "Hello, Bob" 

proc = lambda { |name| "Hello, #{name}" } 
proc['Bob'] 
=> "Hello, Bob" 

但是,在這種情況下,如其他人所指出的,被返回一個新的數組導致陣列的嵌套數組。

相關問題