我最近遇到下面的Ruby代碼,這是混淆了我就來了:使用Ruby的`或`關鍵字時,創建變量
def initialize(kind, street_1, street_2, city, state, postal_code)
@kind = kind or ''
@street_1 = street_1 or ''
@street_2 = street_2 or ''
@city = city or ''
@state = state or ''
@postal_code = postal_code or ''
end
我不明白or
在此代碼玩什麼角色。有人可以解釋嗎?
不僅僅是'nil',而且'false'(在Ruby中評估爲'false'的兩個值) – jayelm
精彩點,謝謝! – CalmBit
Hrm。這是非常有道理的,但是當我測試這個時,看起來並不符合我所看到的。 也就是說,假設我將'initialize'方法的一行更改爲:'@state = state或「TX」'。現在讓我們說我叫'Class.new(「something」,「1800 Wallaby Way」,零,零,零,零)''。 做完所有這些之後,如果我在'@ state'上調用'puts',你會不會期望輸出是'TX'。我會的,但似乎並非如此。相反,輸出是空白的,表明'或'關鍵字*不能*生效。 我的代碼:https://repl.it/EGO0/0 – filmnut