.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?

nil.nil?       => true
false.nil?     => false
1.nil?         => false
0.nil?         => false
"".nil?        => false
[].nil?        => false

例:.empty?

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

例:.blank?

p true.blank?        FALSEp false.blank?      TRUEp "true".blank?     FALSEp "".blank?         TRUEp "\n".blank?       TRUEp '\n'.blank?       FALSEp 'true'.blank?     FALSEp ''.blank?         TRUEp 1.blank?          FALSEp [].blank?         TRUEp [1].blank?        FALSE

例:.present?

nil.present?       => false
[].present?        => false
"hello".present?   => true
["a"].present?     => true

部分参考自:http://www.myexception.cn/program/1049108.html

转载于:https://blog.51cto.com/bohsu/1324907

Ruby的.nil? .empty? .blank? .present?区别相关推荐

  1. php 空函数,PHP 中函数 isset(), empty(), is_null() 的区别

    PHP 中函数 isset(), empty(), is_null() 的区别, 使用 PHP 进行开发的时候,经常会用到 isset(), empty(), is_null() 这几个函数对数据进行 ...

  2. Mysql 数据库默认值选 ‘‘“ 、Null和Empty String的区别

    Mysql 数据库默认值选 ''" .Null和Empty String的区别 1:空值('')是不占用空间的 2: MySQL中的NULL其实是占用空间的.官方文档说明: "NU ...

  3. RAD Studio 10.4 for delphi XE Assigned和Nil的联系与区别

    RAD Studio 10.4 for delphi XE Assigned和Nil的联系与区别 一.原理 系统级别的函数System.pas : System.Assignedfunction As ...

  4. ruby include require load extend 的区别

    ruby include require load extend 的区别 -–require/load-- 在功能上require和load都是用来导入文件的. 区别如下: require 用来加载库 ...

  5. php中empty与isset的区别,再谈php中empty与isset区别详解

    empty与isset在php中一个是为空,另一个判断是是否为一个存在的变量了,下面小编来给各位同学介绍php中empty与isset区别,欢迎各位同学进入参考. empty是判断变量值是非空或非零的 ...

  6. isset和empty有什么区别? (PHP面试题)

    1)如何检测一个变量是否被定义 : isset为假    1,直接定义为假   2,未定义变量为假  3,unset销毁的变量为false isset():检测一个变量是否被定义 2)如何检测一个变量 ...

  7. nil 和NULL 的区别

    博客引用处(以下内容在原有博客基础上进行补充或更改,谢谢这些大牛的博客指导): nil和NULL 的区别 在java项目中会遇到nil和null,下面详细说明下他们的区别: NULL 只能作为指针变量 ...

  8. golang nil slice 和 empty slic 的区别 空切片

    var slice []int 创建出来的 slice 其实是一个 nil slice.它的长度和容量都为0.和nil比较的结果为true.这里比较混淆的是empty slice,empty slic ...

  9. [golang]nil slice和empty slice的区别

    前言 在开发的时候,会遇到对于nil slice和empty slice的问题,往往在声明了slice之后,在使用的时候却出现了问题. 问题 以下是错误的用法,会报数组越界的错误,因为只是声明了sli ...

最新文章

  1. 服务器群装系统,手把手教你安装及配置服务器集群系统
  2. C#: static关键字的作用
  3. linux c printf 打印输出null
  4. 【Flutter】StatelessWidget 组件 ( Divider 组件 | Card 组件 | AlertDialog 组件 )
  5. 机器学习——KNN实现
  6. word2003快速排版工具栏_干货分享 | 闲到在家数瓜子?——先把ID排版秘籍学了吧(上)...
  7. 机器学习之路:python k近邻回归 预测波士顿房价
  8. 【PKUSC2018】星际穿越【结论】【倍增dp】
  9. 各种排序(数据结构复习之内部排序算法总结)
  10. python字典更改元素_python – 返回带有一个已更改元素的字典
  11. android keystore作用,如何使用Android KeyStore安全地存储任意字符串?
  12. 吴恩达深度学习——目标检测
  13. 如何进行影像建库及做ArcGIS Server Cache
  14. Teamviewer远程黑屏
  15. Cox回归+Cox比例风险回归模型
  16. IBM将花2.5亿收购第二家以色列移动软件开发商
  17. 很哇塞的网页特效之字符串切换
  18. WAP中推送技术的分析与设计(转)
  19. 三相电流滞环跟踪PWM控制
  20. 短视频在线去水印 视频伪原创批量处理工具

热门文章

  1. 如何让linux的history命令显示时间记录
  2. 4.Windows下安装ZooKeeper
  3. 贷还是不贷:如何用Python和机器学习帮你决策?
  4. find命令详解(原创)
  5. 【Socket】Python UDP和TCP的socket实例
  6. c# 线程间操作无效: 从不是创建控件“”的线程访问它,用托管来解决
  7. 电话语音信箱在企业中的应用
  8. 转贴: OpenGL开发库的组成
  9. [原]动态创建Web控件制做计算器
  10. 设计模式04_抽象工厂模式