I thought that:
do_something if condition
were equivalent to
if condition
do_something
end
I found a code that does not respect this rule.
if !(defined? foo)
foo = default_value
end
Here, foo
takes default_value
.
foo = default_value if !(defined? foo)
Here, foo
takes nil
. In the former code, I think if
is executed first, and should be equivalent to:
foo = (default_value if !(defined? foo))
Is there any way to set to default_value
if the variable is not defined?
General answer :
Some several comments want to use the ||=
operator... Which will not work if foo
is nil
:
foo ||= default_value
will return the default value, while foo
is defined.
I insist on using "not defined?
", which is not equal to nil
.