簡體   English   中英

方括號在這里意味着什么?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM