Ruby 中的條件賦值

Stewart Nguyen 2022年5月18日
Ruby 中的條件賦值

a ||= b 是一個條件賦值運算子。相當於 a || a = b

如果 a 為假,即:nilfalse,則評估 b 並將結果分配給 a

如果 a 為真,即除 nilfalse 外,b 將不被評估,a 將保持不變。

例如:

a = nil
a ||= 10
a
=> 10
a = 1
a ||= 10
a
=> 1

問題是:如果 a += b 等於 a = a + b 那麼 a ||= b 應該是 a || a = b

這是一個完全錯誤的假設。如果沒有事先宣告 aa || a = b 將導致未定義的變數錯誤。

a || a = 10

輸出:

NameError: undefined local variable or method `a'

相關文章 - Ruby Boolean