本文主要是介绍RAILS关于 NIL? PRESENT? EMPTY? ANY? BLANK?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
-
nil?
nil? 判断一个具体的对象是不是为空值的。在rails常用的就是activerecord的对象判断啦。例如a查出来不是空的判断
a = User.find(1)=> a.nil?=> true=> a.present?=> false
但是字符串,空数组 ,空hash查不出来。
=> "".nil? => false => [].nil? => false => {}.nil? => false
-
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.
这篇关于RAILS关于 NIL? PRESENT? EMPTY? ANY? BLANK?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!