Ruby的.nil? .empty? .blank? .present?差别

Ruby的.nil? .empty? .blank? .present?区别

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

  • .nil? 和 .empty? 是ruby的方法。 .blank? 是rails的方法。

     

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

     

  • .empty? 对象已经存在,判断是否为空字段,比如一个字符串是否为空串,或者一个数组中是否有值

     

  • .blank? 相当于同时满足 .nil? 和 .empty? 。railsAPI中的解释是如果对象是:false, empty, 空白字符. 比如说: "", " ", nil , [], 和{}都算是blank。 (object.blank? 相当于 object.nil?||object.empty?)。

     

  • present?方法就是blank?方法的相反,判断是否存在,因此present?方法与!blank?方法两者表达的意思是一样的。

 

 

例:.nil?

 

 

1
2
3
4
5
6
nil . nil ?       =>  true
false . nil ?     =>  false
1 . nil ?         =>  false
0 . nil ?         =>  false
"" . nil ?        =>  false
[]. nil ?        =>  false

 

例:.empty?

 

1
2
3
4
5
"" .empty?          =>  true
"abc" .empty?       =>  false
[].empty?          =>  true
[ 1 2 3 ].empty?   =>  false
1 .empty?           => NoMethodError   #说明 empty? 方法不能用于整数

例:.blank?

1
2
3
4
5
6
7
8
9
10
11
true .blank?         FALSE
  false .blank?       TRUE
  "true" .blank?      FALSE
  "" .blank?          TRUE
  "\n" .blank?        TRUE
  '\n' .blank?        FALSE
  'true' .blank?      FALSE
  '' .blank?          TRUE
  1 .blank?           FALSE
  p [].blank?          TRUE
  p [ 1 ].blank?         FALSE

例:.present?

1
2
3
4
nil.present?       =>  false
[].present?        =>  false
"hello" .present?   =>  true
[ "a" ].present?     =>  true
  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值