Could some one explain to me the meaning of the following Ruby code? (I saw this code snippet in one guy’s project):
car ||= (method_1 || method_2 || method_3 || method_4)
What is the difference between the above code and the following code?
car = method_1 || method_2 || method_3 || method_4
———-update————–
Ok, I got the meaning of ||= operator after read @Dave’s explanation, my next question is if both method_2, method_3 and method_4 return a value, which one’s value will be assigned to car? (I suppose car is nil initially)
It’s an assignment operator for ‘Conditional Assignment’
See here -> http://en.wikibooks.org/wiki/Ruby_Programming/Syntax/Operators
Conditional assignment:
Operator ||= is a shorthand form of the expression:
EDIT:
After seeing OP’s edit, the example is just an extension of this, meaning:
Will assign the first non-nil or non-false return value of method_1, method_2, method_3, method_4 (in that order) to
caror it’ll retain its old value.