测试空值或空值字符串

我试图在 Ruby 中设置一个条件变量。我需要设置它,如果变量为空(0长度字符串)。我想到了以下几点:

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

虽然有效,但我觉得不太像 Ruby。是一种更简洁的方式来表达以上内容吗?

224774 次浏览

第二个子句不需要 !variable.nil?检查ーー如果求值达到这一点,则 variable.nil保证为 false (因为 短路)。

这应该足够了:

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

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

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

variable = id if variable.to_s.empty?

如果你在 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?