可能重複:
What does ||= (or equals) mean in Ruby?運算符|| =在Ruby中代表什麼?
很難搜索這個在谷歌,因爲它是一個符號,而不是文字。
||=
代表什麼?
它是如何工作的?
可能重複:
What does ||= (or equals) mean in Ruby?運算符|| =在Ruby中代表什麼?
很難搜索這個在谷歌,因爲它是一個符號,而不是文字。
||=
代表什麼?
它是如何工作的?
它分配一個值(如果尚未分配的話)。像這樣:
a = nil
a ||= 1
a = 1
a ||= 2
在第一個例子中,將被設置爲1.在第二個,一個仍然將是1
我只能猜測,但我相信它代表一個邏輯運算符與設置變量組合(如^ =,+ =,* =在其他語言)
所以x ||= y
相同x = x || y
編輯:我猜對了,看http://phrogz.net/ProgrammingRuby/language.html#table_18.4
x = x || y
意思是:如果設置了x,否則分配y。它可用於確保變量至少已初始化(至0,空陣列等)
如果b爲零,分配給它。
a = :foo
b ||= a
# b == :foo
如果b不是零,請不要更改它。
a = :foo
b = :bar
b ||= a
# b == :bar
這是一個 '縮寫分配'(參見紅寶石袖珍參考,第10頁)
A = A || b
(意味着被分配通過邏輯或的形成的值,b
變得
一個|| = B
幾乎所有運營商擁有的簡化版本(+ = * = & & =等)。
看起來有點像SQL'coalesce'操作 – 2009-09-07 12:13:52
感謝。它只是確保該變量的當前值不會被覆蓋。 – 2009-09-08 02:53:13
這是我很好。 C#可以啓發你。 :-) – 2012-10-03 17:53:47