如果,空变量检查Ruby

时间:2013-07-26 13:31:38

标签: ruby

我有这段代码:

  def self.add_contact(name, phone, adress, note)

    if name.empty? || phone.empty? || adress.empty?
      puts 'some text'
    else
      Zoznam.new(name, phone, adress, note)
    end

  end

但我想要另一种方法,不需要empty?方法。因为empty?方法只能用于非整数的字符串。什么是正确的方法?

抱歉我的英语不好......

3 个答案:

答案 0 :(得分:2)

您可以使用实现activesupport方法的blank? gem。这可能正是你想要的。

答案 1 :(得分:1)

使用.to_s.empty?应该涵盖所有情况,似乎是String,Integer和nil。

"".to_s.empty?    # => true
nil.to_s.empty?   # => true
"foo".to_s.empty? # => false
1.to_s.empty?     # => false

答案 2 :(得分:0)

  

但我想要另一种方法,而不是empty?方法,因为空方法只能用于字符串而不能用于整数。什么是正确的方法?

确实取决于您认为整数为空的empty?类中没有Integer这样的东西,因为它没有意义。如果您的变量属于IntegerFixnum类型,则无论如何它都不会为空:它将始终包含值,数字。

我猜你正在寻找的是测试变量phone的空虚,因为nil可能被分配给它。在这种情况下,您只需使用:

if name.empty? || phone || adress.empty?

if name.empty? || phone.is_a? Fixnum || adress.empty?

如果您想绝对确定phoneFixnum(或任何其他类别)。