在 Ruby 中,如果返回非零值,我的函数func
将返回。我会以某种方式期望返回的值。换句话说,即使它没有执行,它也会获得赋值的值:nil
myfunction1
func
rc
def func
rc = myfunction1
rc = myfunction2 if rc.nil?
end
如果我对此进行增强func
,那么func
就像我期望的那样工作:
def func
rc = myfunction1
rc = myfunction2 if rc.nil?
rc
end
这是简化版本,您可以自己尝试一下:
def func
rc = 3
rc = myfunction2 if rc.nil? # returns nil but rc has value 3
end
这种行为是否有具体原因?