Ruby lazy if语句没有运算符

时间:2012-03-18 10:22:38

标签: ruby-on-rails ruby

是否可以在ruby中执行此操作?

variablename = true
if variablename
   puts "yes!"
end

而不是这个

variablename = true
if variablename == true
   puts "yes!"
end

编辑:     还考虑过:

variablename = 0 #which caused my problem

我无法让它发挥作用。如果可能的话,这样的风格是什么?我现在正在学习ruby,它可以在PHP中使用,但我不确定如何在ruby中正确使用

3 个答案:

答案 0 :(得分:8)

当然,这是可能的

除了nilfalse之外的所有内容在ruby中都被视为true。含义:

var = 0
if var
  # true!
end

var = ''
if var
  # true!
end

var = nil
if var
  # false
end

答案 1 :(得分:3)

xdazz和Vlad的答案是正确的,所以你需要分别抓住0

variable = false if variable.zero?  # if you need 0 to be false
puts "yes!" if variable             # now nil, false & 0 will be considered false

答案 2 :(得分:1)

一切皆有可能。在ruby中,只有nilfalse被视为false,其他任何值都是真的。