测试空值或零值字符串

时间:2013-04-13 14:39:49

标签: ruby-on-rails ruby

我正在尝试在Ruby中有条件地设置变量。如果变量为nil或空(0长度字符串),我需要设置它。我想出了以下内容:

variable = id if variable.nil? || (!variable.nil? && variable.empty?)

虽然它有效,但它对我来说似乎不像Ruby。表达上述内容的方式是否更为简洁?

3 个答案:

答案 0 :(得分:169)

第二个子句不需要!variable.nil?检查 - 如果评估到达该点,variable.nil保证是假的(因为short-circuiting)。

这应该足够了:

variable = id if variable.nil? || variable.empty?

如果你正在使用Ruby on Rails,Object.blank?解决了这个问题:

  

如果对象为false,空或空白字符串,则该对象为空。例如,""" "nil[]{}都是空白的。

答案 1 :(得分:51)

如果您在Rails .blank中?应该是您正在寻找的方法:

a = nil
b = []
c = ""

a.blank? #=> true
b.blank? #=> true
c.blank? #=> true

d = "1"
e = ["1"]

d.blank? #=> false
e.blank? #=> false

所以答案是:

variable = id if variable.blank?

答案 2 :(得分:22)

variable = id if variable.to_s.empty?