Short-circuit (||=) post -- CORRECTION
March 26th, 2008
There was a response to my post from yesterday on Procnew.com, which pointed out that when you’ve got this:
x ||= y
it doesn’t expand to this:
x or x = y
(which is what I said in my last post) but rather to this:
x || x = y
I believe that’s right. It’s kind of hidden until you do:
a = x ||= y
and you start to see that it behaves like the || expansion, not the or expansion.
The example on Procnew.com has one glitch, which is that on line 9 of the irb session, it’s using a value that’s already set (h[:y]), so it’s never going to jump over the || anyway. Still, I believe the point is right.
Pending other edge-case edge-cases, anyway…. :-)
Sorry, comments are closed for this article.