我正在尝试在 Ruby 中有条件地设置一个变量。如果变量为 nil 或为空(0 长度字符串),我需要设置它。我想出了以下几点:
variable = id if variable.nil? || (!variable.nil? && variable.empty?)
虽然它有效,但对我来说似乎不是很像 Ruby。是不是更简洁的表达方式?
我正在尝试在 Ruby 中有条件地设置一个变量。如果变量为 nil 或为空(0 长度字符串),我需要设置它。我想出了以下几点:
variable = id if variable.nil? || (!variable.nil? && variable.empty?)
虽然它有效,但对我来说似乎不是很像 Ruby。是不是更简洁的表达方式?
第二个子句不需要!variable.nil?
检查——如果评估达到该点,variable.nil
则保证为假(因为短路)。
这应该足够了:
variable = id if variable.nil? || variable.empty?
如果您正在使用 Ruby on Rails,Object.blank?
则可以解决这个确切的问题:
如果对象为假、空或空白字符串,则该对象为空。例如,
""
、" "
、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?