【发布时间】:2012-08-13 21:04:16
【问题描述】:
在 Ruby 中,如果 myfunction1 返回非零值,我的函数 func 返回 nil。我会以某种方式期望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
这种行为是否有具体原因?
【问题讨论】:
标签: ruby if-statement expression variable-assignment