我有这段代码:
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?
方法只能用于非整数的字符串。什么是正确的方法?
抱歉我的英语不好......
答案 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
这样的东西,因为它没有意义。如果您的变量属于Integer
或Fixnum
类型,则无论如何它都不会为空:它将始终包含值,数字。
我猜你正在寻找的是测试变量phone
的空虚,因为nil
可能被分配给它。在这种情况下,您只需使用:
if name.empty? || phone || adress.empty?
或
if name.empty? || phone.is_a? Fixnum || adress.empty?
如果您想绝对确定phone
是Fixnum
(或任何其他类别)。