4 ms·
Unfortunately, it's not actually an initialiser. Type confusion is really common in Ruby programs, sadly. The construct in parent assigns 1 if foo is "falsey",
by jbg_ 9y ago
Unfortunately, it's not actually an initialiser. Type confusion is really common in Ruby programs, sadly.
The construct in parent assigns 1 if foo is "falsey", not strictly if it is nil. Even if foo is already initialised but contains a "falsey" value it will be assigned 1.
- stevedt 9y agoBut in Ruby only false and nil are "falsey", so unless the variable was accidentally set to false (not impossible) the construct behaves as an initializer.