为了账号安全,请及时绑定邮箱和手机立即绑定

RubyonRails中“零”、“空白”的简明解释

RubyonRails中“零”、“空白”的简明解释

慕盖茨4494581 2019-07-01 10:55:54
RubyonRails中“零”、“空白”的简明解释我发现自己反复寻找一个清晰的定义的区别nil?, blank?,和empty?在RubyonRails中。这是我来的最近的地方:blank?对象是false、空或空格字符串。例如,"", " ", nil, [],和{}都是空白。nil?对象是NilClass的实例。empty?对象是特定于类的,定义因类而异.如果字符串没有字符,则为空;如果数组不包含项,则为空。有没有什么遗漏的东西,或者可以进行更紧密的比较?
查看完整描述

3 回答

?
陪伴而非守候

TA贡献1757条经验 获得超8个赞

.nil?可以在任何对象上使用,如果对象为零,则为true。

.empty?可以用于字符串、数组和散列,并在下列情况下返回true:

  • 字符串长度=0
  • 数组长度=0
  • 散列长度=0

跑动.empty?如果是零的话,就会抛出一个NoMethodError.

那就是.blank?进来。它是由Rails实现将对任何对象进行操作,以及像.empty?在字符串、数组和散列上。

nil.blank? == truefalse.blank? == true[].blank? == true{}.blank? == true"".blank? == true5.blank? == false0.blank? == false

.blank?此外,对于非空但仅包含空格的字符串,计算值为true:

"  ".blank? == true"  ".empty? == false

Rails还提供 .present?,它返回.blank?.

数组抓到:blank?会回来false即使所有元素数组是空白的。若要确定这种情况下的空白,请使用all?带着blank?,例如:

[ nil, '' ].blank? == false[ nil, '' ].all? &:blank? == true


查看完整回答
反对 回复 2019-07-01
?
慕村9548890

TA贡献1884条经验 获得超4个赞

我用所有的案例制作了这个有用的表格:


blank?present?由Rails提供。


查看完整回答
反对 回复 2019-07-01
  • 3 回答
  • 0 关注
  • 529 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信