Ruby/Rails-empty?/nil?/present?/blank?

.nil? , .empty? .blank? .present?区别:

.nil? 判断对象是否存在(nil)。不存在的对象都是nil的。

nil.nil?      =>true

false.nil?     =>false

1.nil?         =>false

0.nil?         =>false

"".nil?        =>false

[ ].nil?        =>false

{ }.nil?        =>false

.empty? 前提是对象已存在,判断是否为空字段,比如空字符串,空数组,空对象。

"".empty?          =>true

"   ".empty?          =>false  注意有空格

"abc".empty?       =>false

[ ].empty?          =>true

[ nil ].empty?          =>false

[1,2,3].empty?   =>false

1.empty?            => NoMethodError: undefined method `empty?' 

{}.empty?            =>true

.blank?等于同时满足 .nil? 和 .empty? 。如果对象是false, empty, 空白字符. 例:

"", " ", nil , [], 和{}都算是blank。

object.blank? 相当于object.nil? || object.empty?

.nil? 和 .empty? 是ruby的方法。 .blank?和present? 是rails的方法,需要在rails环境下才能测试,rails c。

true.blank?          =>false

false.blank?        =>true

"true".blank?      =>false

"".blank?            =>true

"  ".blank?           =>true

"\n".blank?         =>false

'\n'.blank?           =>false

{}.blank?            =>true

1.blank?            =>false

[].blank?          =>true

nil.blank?         => true

present?方法是blank?相反的方法,用于判断是否存在,present?与!blank?相同,或(!present?与blank?)

nil.present?      =>false

[].present?        =>false

"hello".present?   =>true

["a"].present?     =>true

你可能感兴趣的:(Ruby/Rails-empty?/nil?/present?/blank?)