`

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
[123].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

 出处http://bohsu.blog.51cto.com/6966437/1324907

分享到:
评论

相关推荐

    二元树

    在Ruby编程语言中,实现二元树可以为各种问题提供高效的解决方案。 二元树的特性: 1. 深度:树的最大层数称为深度,根节点的深度为0。 2. 高度:从根节点到最远叶子节点的最长路径上的边数称为高度。 3. 完全二元...

    linked_list:Ruby中的链表实现

    在Ruby编程语言中,链表是一种非常基础且重要的数据结构,它由一系列节点组成,每个节点包含数据和指向下一个节点的引用。链表不同于数组,数组中的元素在内存中是连续存储的,而链表的节点可以分散在内存的任何位置...

    true_string:将字符串转换为布尔值

    真字符串 可以转换为真值、 true和false的字符串集合。 "true" . truthy? "false" ....nil . falsy? 如果接收者分别为真或假,这些方法将返回true 。 安装 将此行添加到应用程序的 Gemfile 中: gem

    ruby-2.3.7.tar.gz

    Ruby是一种强大的、面向对象的脚本语言,由日本的松本行弘(Yukihiro Matsumoto)于1995年设计并开发。它强调代码的可读性和简洁性,鼓励使用自然语言般的语法,使得程序员能更快速地编写出清晰易懂的代码。在描述中...

    EasyUIImagePickerController

    strongSelf.presentViewController(imagePickerController, animated: true, completion: nil) } }, Fail: { //SVProgressHUD.showErrorWithStatus("无法获取照片权限") }) 选取图片来自相机 注意使用[weak ...

    binary_search_tree:用Ruby实现的二进制搜索树

    在Ruby中实现二叉搜索树,我们需要定义一个类来表示节点,这个节点应包含键、值以及左右子节点的引用。接着,我们需要定义一系列方法来执行常见的操作,如插入节点、查找节点、删除节点等。 ```ruby class Node ...

    Rails的邮件预览引擎MailsViewer.zip

    user_name: nil, password: nil, authentication: nil, enable_starttls_auto: true }, send_if: lambda { |mail| mail.destinations.select { |address| ["yedingding@gmail.com"].include?(address) }.any? ...

    es-query-builder:Ruby 中 Elasticsearch 的查询构建器

    Ruby 中 Elasticsearch 的查询构建器。 用法 gem 'es-query-builder' builder = EsQueryBuilder . new ( # Fields allowed searching with match query. query_fields : [ 'field1' ] , # Fields for ...

    is_bullshit:叫废话

    is_bullshit叫废话。... 以下值为合格的总废话: [nil, [], {}, 0, false, 'undefined', 'false', '', '0', 'nil', 'null'] .legit? 和.seems_legit? .bullshit?的对立是.bullshit? nil.bullshit?

    Ruby-GraphQL的ActionPolicy集成

    在Ruby开发中,GraphQL是一种强大的查询语言,用于API,它允许客户端定义他们想要的数据结构,而服务器则返回匹配请求的数据。ActionPolicy则是Ruby中的一个授权库,它为Rails应用提供了基于对象的策略模式实现,...

    UITextField

    NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillShow), name: .UIKeyboardWillShow, object: nil) NotificationCenter.default.addObserver(self, selector: #selector...

    ios-地理编码.zip

    .first, error == nil { let coordinate = placemark.location!.coordinate print("经度: \(coordinate.longitude), 纬度: \(coordinate.latitude)") } else { print("地理编码失败: \(error?....

    ipcat-ruby:client9ipcat的Ruby端口

    ipcat-ruby 库的ruby端口,用于对来自已知数据中心的IP地址进行分类 安装 使用捆绑器: # In Gemfile gem 'ipcat' 或与Ruby: gem install ipcat 用法 IPCat . datacenter? ( ip_address ) 如果ip_address来自...

    weak_attr_accessor:RubyMotion 的weak_attr_accessor

    #weak_attr_accessor 用于 ... @view_controller = nil else @view_controller = WeakRef . new ( obj ) end end end 安装 将此添加到您的Gemfile : gem 'weak_attr_accessor' 运行bundle install 执照

    ruby-2.5.8.tar.gz

    Ruby是一种面向对象、动态类型的编程语言,由日本的松本行弘(Yukihiro Matsumoto)于1995年设计并开发。Ruby以其简洁、优雅的语法和强大的元编程能力而闻名,它强调程序员的生产力和代码的可读性。在Ruby-2.5.8版本中...

    in_business:用于检查给定的DateTime,Date或Time是否在预定义的开放时间范围内的gem

    在业务 处理业务开放时间非常困难,或者至少要为每个应用程序写很多工作。... # => nil (since we've not set any hours yet!) # We want to be open 9am til 6pm on a Monday InBusiness . hours . monday

    AutomaticCoder.zip

    NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil]; NSDictionary *json = [data objectFromJSONData]; //init object Person *person = [[Person alloc] ...

    ruby ftp封装实例详解

    ### Ruby FTP 封装实例详解 #### 概述 在Ruby开发中,有时我们需要与FTP服务器进行交互,比如上传或下载文件等操作。虽然Ruby的标准库`Net::FTP`已经提供了一些基本的功能,但在实际应用中,我们往往需要对这些...

    Ruby Sheet.pdf

    ### Ruby 语言基础知识点概述 本篇文档将详细介绍Ruby速查手册中提到的关键知识点,包括预定义变量、保留字、类型、表达式、模块/类定义以及运算符和正则表达式的使用方法。 #### 预定义变量 Ruby提供了一系列...

    Ruby语言入门教程&代码示例.pdf

    ### Ruby语言基础知识与示例详解 #### 一、Ruby简介 Ruby是一种面向对象的脚本语言,具有简单、高效的特点。它由日本人松本行弘(Yukihiro Matsumoto)于1995年设计并发布。Ruby的设计哲学强调程序员的生产力和...

Global site tag (gtag.js) - Google Analytics