ruby-1.9.3-p194 导轨 3.0.9
我遇到了很多条件表达式求值的奇怪行为。
看一段代码:
module SimpleCaptcha
module ControllerHelpers
def simple_captcha_valid?
t = Logger.new(STDOUT)
return true if Rails.env.test?
if params[:captcha]
data = 'SHGHGD'
result = data == params[:captcha].delete(" ").upcase
t.debug data
t.debug params[:captcha].delete(" ").upcase
t.debug result
else
return false
end
end
end
end
这是我在调试控制台中看到的:
SHGHGD
WEWE
nil
如您所见, nil 是评估结果 = data == params[:captcha].delete(" ").upcase
但为什么???
数据是'SHGHGD'
params[:captcha].delete(" ").upcase是WEWE
为什么是零?它一定是假的。