我是 Ruby on Rails 的新手。我知道 << 運算子它在做什么,但我正在使用資料表,并且我有如下代碼:
def data
items.map do |donation|
[].tap do |column|
column << donation_path(donation)
column <<= current_user.admin? ? link_to(donation.sender.name, admin_store_path(donation.sender)) : donation.sender.name
end
end
end
我試圖 <<= 在 rails c 中,結果是:
irb(main):001:0> ar = []
=> []
irb(main):002:0> ar << 1
=> [1]
irb(main):003:0> ar <<= 1
=> [1, 1]
irb(main):004:0> ar <<= 2
=> [1, 1, 2]
我認為 <<= 與 << 相似,但我必須確定。
uj5u.com熱心網友回復:
如果在 Ruby 中使用運算子op= ,則運算式
x操作 = y
相當于
x = x操作y
在您的情況下,這意味著
a <<= b
相當于
a = a << b
但既然a << b已經修改a了,使用<<=.
注意:正如評論中所指出的,這不適用于操作員[]:如果您想要一個分配版本,您必須[]=明確定義。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/440691.html
