【发布时间】:2012-05-01 08:59:28
【问题描述】:
我不小心创建了以下检查,效果很好,但我很好奇为什么:)
- 首先,我知道我可以分配
:a而不是 'a' ;) - 我知道此检查的正确公式,我只是好奇为什么会这样
- 我不在乎优化这个(阅读 2)
if params['a'] < 0 || params['a'] > params['b || params[:b] < 1]
如果在['b 之后没有关闭,为什么会这样。
除此之外一切正常,直到我删除最后一个],或将其更改为其他内容。
更新:
这是 ruby 的输出:
irb> params
=> {"a"=>3, "id2"=>"2", "b"=>2, "id"=>"1", :id=>"2"}
irb> if params['a'] < 0 || params['a'] > params['b' || params[:b] < 1]
irb> puts 'strange...'
irb> end
strange...
=> nil
【问题讨论】:
-
您是否尝试过编写一个包含上述行的简单 ruby 文件?
-
呃,那段代码肯定不行。你确定这就是你所拥有的吗?也许您稍后有一个匹配的
'? -
你是对的,粘贴时出了点问题,这是我使用的原始代码('b 后缺少'): if params['a'] 参数['b' ||参数[:b]
-
@adiel-mittmann 是的,我试过了:
params > => {"a"=>3, "id2"=>"2", "b"=>2, "id"=>"1", :id=>"2"} > if params['a'] < 0 || params['a'] > params['b' || params[:b] < 1] > puts 'strange...' > end > strange... > => nil