[英]What do the square brackets mean here?
我在Rails應用程序中看到了這樣一行:
Order::PAYMENT_TYPES.map {|p| [t('.payment_type.'+p), p]}
PAYMENT_TYPE
是一個字符串數組,字母t
用於Rails中的i18n。
我不確定方括號在這里是如何使用的。 顯然它們不適用於數組或方法。 我會將其重寫為{|p| t('.payment_type.'+p) }
{|p| t('.payment_type.'+p) }
。
那么這個例子中的Ruby語法是什么?
顯然它們不適用於數組或方法
嗯,這是一個數組文字
[t('.payment_type.'+p), p]
# ^ first element ^ second
我會把它改寫成......
如果這對您有用,請繼續。 我們不知道您應用的具體細節。
Ruby從方法或塊返回最后一個語句。 在這種情況下,使用括號,塊返回一個包含兩個項的數組,因此如果PAYMENT_TYPES
有三個項,則在map
調用該塊將導致類似[ [a1, b1], [a2, b2], [a3, b3] ]
。
你是正確的,方括號不僅用於數組,你也可以調用Procs。
proc = lambda { |name| "Hello, #{name}" }
proc.call('Bob')
=> "Hello, Bob"
proc = lambda { |name| "Hello, #{name}" }
proc['Bob']
=> "Hello, Bob"
但在這種情況下,正如其他人所指出的那樣,正在返回一個新數組,從而產生一個嵌套的數組數組。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.