解决方法
AFAIK在普通的Ruby中没有这样的东西.您可以像这样创建自己的:
class NilClass def blank? true end end class String def blank? self.strip.empty? end end
这适用于nil.blank?和a_string.blank?你可以为真/假和一般对象扩展这个(就像rails一样):
class FalseClass def blank? true end end class TrueClass def blank? false end end class Object def blank? respond_to?(:empty?) ? empty? : !self end end
参考文献:
https://github.com/rails/rails/blob/2a371368c91789a4d689d6a84eb20b238c37678a/activesupport/lib/active_support/core_ext/object/blank.rb#L57
https://github.com/rails/rails/blob/2a371368c91789a4d689d6a84eb20b238c37678a/activesupport/lib/active_support/core_ext/object/blank.rb#L67
https://github.com/rails/rails/blob/2a371368c91789a4d689d6a84eb20b238c37678a/activesupport/lib/active_support/core_ext/object/blank.rb#L14
https://github.com/rails/rails/blob/2a371368c91789a4d689d6a84eb20b238c37678a/activesupport/lib/active_support/core_ext/object/blank.rb#L47
这是String.blank?实施应该比前一个更有效: