.nil? , .empty? .blank? .present?區(qū)別:
.nil? 判斷對象是否存在(nil)盅惜。不存在的對象都是nil的。
nil.nil?? ? ? =>true
false.nil????? =>false
1.nil????????? =>false
0.nil????????? =>false
"".nil???????? =>false
[ ].nil???????? =>false
{ }.nil?? ? ? ? =>false
.empty? 前提是對象已存在消请,判斷是否為空字段,比如空字符串他宛,空數(shù)組捣辆,空對象。
"".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環(huán)境下才能測試蜕劝,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