2016-03-10 111 views
13

什么是最好的方法来检查一个变量是不是空白在else(如果条件在Ruby中(不是Rails)?Ruby方法来检查一个字符串是否不为空?

elsif not variable.to_s.empty? 
    # do something 
end 

elsif !variable.to_s.empty? 
    # do something 
end 

elsif variable.to_s.length > 0 
    # do something 
end 
+2

每一种方法都应该工作。你问问哪种方式最好? –

+1

我想,第二个是最习惯的。如果你使用的是rails,你也可以使用'if variable.present?'或'if!variable.blank?',它处理空字符串和nils。 –

回答

17
string = "" 

unless string.to_s.strip.empty? 
    # ... 
end 
2

您可以使用

unless var.empty? 
    #do sth 
end 

unless var == "" 
    #do sth 
end 

或所有这些与if和否定者!

+1

如果var为零,两者都会失败。 –

+2

这不是问题的一部分。要检查,只需做:'除非var && var.empty?'。 – three

+1

这就是'.to_s'的用法(在原文中) - 处理nils。 –

0

我刚刚发现''.empty?回报true' '.empty?回报false。即使to_s.length' '也不为零。

也许是更好地使用如挤' '.squish.empty?

Alas squish is in rails and not in ruby. Probably one should do ' '.strip.empty? to get the result. 
相关问题