Ruby ruby 布尔类型判断迷惑中

seeyoup · 2014年08月20日 · 最后由 Victor 回复于 2014年08月21日 · 4818 次阅读
if ''
  printf "空字符串\n"
end

if []
  printf "空数组"
end


if nil
  print 'nil'
end

if false
  print 'false'
end

if true
  print 'true'
end

if 1
  printf '有名额1'
end

if 0
  printf '没有明额0'
end

测试了这么多,只有 if true 和 if false 感觉判断准确,其他''、0、[],为什么条件判断的时候都成立了,这样的话,我如何判断数据是否为空呢?

只要记住在 ruby 的条件判断中, falsenil 为条件不成立。

if 0
    printf '没有明额0'
end

这里条件不成立的原因是 0 的返回值是 0

#irb
2.1.2 :001 > 0
 => 0

var.blank? 可以用来判断是不是空值,可惜这是一个 rails 的方法。

#1 已经给了标准答案

需要 登录 后方可回复, 如果你还没有账号请 注册新账号