Rails对象#空白? 与String#空? 混乱
Rails文档具有Object#blank?
这些信息Object#blank?
如果对象为false,空或空白字符串,则该对象为空。 例如,“”,“”,nil,[]和{}为空。
但是该方法的来源如下所示:
# File activesupport/lib/active_support/core_ext/object/blank.rb, line 12
def blank?
respond_to?(:empty?) ? empty? : !self
end
现在,当我打开我方便的小命令行并键入ruby -e 'p " ".empty?'
它返回false。 这意味着Rails应该说这显然不是一个空白值。 但! 我打开我的rails console
然后输入" ".empty?
并像我早期的直线命令行一样虚假。 但是,我输入“”.blank? 而且我像Rails承诺的那样真实。
理解Rails的blank?
方法适用于empty?
方法的字符串?
Rails在如何记录blank?
有点棘手blank?
方法。 即使Object#blank?
声称还检测空白字符串,它是用String#blank?
处理空白的情况和Object#blank?
去捕捉一般情况。 (为了节省时间, blank?
也在其他几个类上定义)。
activesupport / lib / active_support / core_ext / object / blank.rb,第66行:
class String
def blank?
self !~ /S/
end
end
链接地址: http://www.djcxy.com/p/25797.html