RAILS关于 NIL? PRESENT? EMPTY? ANY? BLANK?


  1. nil?

       nil? 判断一个具体的对象是不是为空值的。在rails常用的就是activerecord的对象判断啦。例如a查出来不是空的判断

a = User.find(1)
 => a.nil?
 => true
 => a.present?
 => false

但是字符串,空数组 ,空hash查不出来。

=> "".nil?
=> false
=> [].nil?
=> false
=> {}.nil?
=> false


  1. empty? 和 any?

           empty? 和 any? 是通过length来判断的,一般用来判断数组 hash,或者对象集合。

例如:

=> [].empty?
 => true
 => [].any?
 => false
 => {}.empty?
 => true
 => {}.any?
 => false

 

不同的是 empty? 和 any?判断结果相反

=> "".empty?
=> true
=> "11".empty?
=> false
=> "".any?
=> 报错
=> "  ".any?
=>报错

any不能判断字符串.

还是看any?的源码吧.

def any?
  if block_given?
    to_a.any? { |*block_args| yield(*block_args) }
  else
    !empty?
  end
end

 

2 . present? 和 blank?

present? 和 blank?判断结果相反。看rails源码:

def blank?
  respond_to?(:empty?) ? empty? : !self
end

 

def present?
  !blank?
end

 

blank?的判断是结合nil? 和 empty? 用来判断 空值,空字符串,空数组,空hash.

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值