我的方法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在内联实现中返回?