Ric*_*own 86 ruby ruby-on-rails
我试图在Ruby中有条件地设置变量.如果变量为nil或空(0长度字符串),我需要设置它.我想出了以下内容:
variable = id if variable.nil? || (!variable.nil? && variable.empty?)
Run Code Online (Sandbox Code Playgroud)
虽然它有效,但它对我来说似乎不像Ruby.表达上述内容的方式是否更为简洁?
Jon*_*ier 176
第二个条款不需要!variable.nil?检查 - 如果评估到达那一点,variable.nil则保证是错误的(因为短路).
这应该足够了:
variable = id if variable.nil? || variable.empty?
Run Code Online (Sandbox Code Playgroud)
如果你正在使用Ruby on Rails,Object.blank?解决了这个问题:
如果对象为false,空或空白字符串,则该对象为空.例如
""," ",nil,[],和{}都是空白.
小智 53
如果你在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
Run Code Online (Sandbox Code Playgroud)
所以答案是:
variable = id if variable.blank?
Run Code Online (Sandbox Code Playgroud)