我的方法exists_else
有两个参数:base
和fallback
. 如果base
是nil
,则返回fallback
。如果不是nil
,则返回base
。调用exists_else(true, false)
应该返回true
。
如果我使用标准外观if
-statement,true
则返回我认为的样子:
def exists_else(base, fallback)
unless base.nil?
base
else
fallback
end
end
a = true
exists_else( a, false )
# => true
如果我使用下面显示的内联实现,它会返回false
.
def exists_else(base, fallback)
base unless base.nil? else fallback
end
a = true
exists_else( a, false )
# => false
为什么它false
在内联实现中返回?