串#空白?非常有用,但存在于Rails中,而不是
Ruby中.
@H_502_2@在Ruby中是否有类似的东西来代替:
str.nil? || str.empty?@H_301_6@
解决方法
AFAIK在普通的Ruby中没有这样的东西.您可以像这样创建自己的:
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 @H_502_2@这是String.blank?实施应该比前一个更有效: @H_502_2@https://github.com/rails/rails/blob/2a371368c91789a4d689d6a84eb20b238c37678a/activesupport/lib/active_support/core_ext/object/blank.rb#L101 @H_301_6@ @H_301_6@
class NilClass def blank? true end end class String def blank? self.strip.empty? end end@H_502_2@这适用于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@H_502_2@参考文献: @H_502_2@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 @H_502_2@这是String.blank?实施应该比前一个更有效: @H_502_2@https://github.com/rails/rails/blob/2a371368c91789a4d689d6a84eb20b238c37678a/activesupport/lib/active_support/core_ext/object/blank.rb#L101 @H_301_6@ @H_301_6@