testing空或无值string
我想在Ruby中有条件地设置一个variables。 我需要设置它,如果variables是零或空(0长度的string)。 我想出了以下几点:
variable = id if variable.nil? || (!variable.nil? && variable.empty?)
虽然它起作用,但对我来说,这看起来不像Ruby。 上述expression方式是否更为简洁?
第二个子句不需要!variable.nil?
检查,如果评估达到这一点, variable.nil
保证是错误的(由于短路 )。
这应该足够了:
variable = id if variable.nil? || variable.empty?
如果你正在使用Ruby on Rails, Object.blank?
解决了这个确切的问题:
如果对象为false,空或空白string,则该对象为空。 例如,
""
," "
,nil
,[]
和{}
都是空白的。
如果你在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?
variable = id if variable.to_s.empty?