.nil?

  • Ruby方法

  • .nil?方法被放置在Object类中,可以被任何对象调用,如果是nil则返回true

  • 在Rails中只有nil对象才会返回true

nil.nil? #=> true
anthing_else.nil? #=> false
a = nil
a.nil? #=> true
"".nil #=> true

.empty?

  • Ruby方法

  • 如果对集合之外的对象调用.empty?方法,则会抛出NoMethodError

  • 可以在字符串、数组、hash这几种集合中使用,且只有当集合长度(length)为0时才会返回true

"".empty = true
" ".empty? = false

.blank?

  • Rails方法

  • .empty?的区别: 对于还有空格的字符串也会返回true,并且nil返回的结果也未true

  • 可以在任意对象上调用,不限制于集合对象

nil.blank? = true
[].blank? = true
{}.blank? = true
"".blank? = true
5.blank? == false

.present?

  • Rails方法

  • 如果一个对象不是blank,即会返回true

  • 内部实现其实是调用的·blank?,如下代码:

# File activesupport/lib/active_support/core_ext/object/blank.rb, line 22
def present?
!blank?
ends

 

Rails中nil? empty? blank? present?的区别的更多相关文章

  1. Rails :.nil? , .empty?, .blank? .present? 的区别

    .nil? , .empty?, .blank? .present? 的区别 首先这三个都是判空的. 而 .nil? 和 .empty? 是ruby的方法. .blank? 是rails的方法 .ni ...

  2. .nil? .empty? .blank? .present? in Ruby on Rails

    We get confused when there are many options to choose from. Same is the case when it comes to use an ...

  3. ruby中nil?, empty? and blank?的选择

    In Ruby, you check with nil? if an object is nil: article = nil article.nil? # => true empty? che ...

  4. 【转】ruby中nil?, empty? and blank?的选择

    In Ruby, you check with nil? if an object is nil:article = nil article.nil? # => true empty? chec ...

  5. ruby中nil?, empty? and blank?

    In Ruby, you check with nil? if an object is nil: article = nil article.nil? # => true empty? che ...

  6. el中保留字empty与null的区别

    先看例子: <%@page pageEncoding="utf-8" %><BR>name:${param.name }<br /> empty ...

  7. 在ios开发中nil和NUll和Nilde区别————和如何判断连个对象的关系和UISlider不能拖动的问题

    nil表示一个对象指针为空,针对对象 >示例代码: NSString *someString = nil; NSURL *someURL = nil; id someObject = nil; ...

  8. 说一说Jquery中的empty()与remove()的区别和用法

    今天在改一个新人写的代码,好吧,我承认改代码比自己写代码要来的痛苦. 主要是在测试一个table.table中有一列是删除操作.我的删除功能是 这样的,当点击删除的时候,判断这个table中的tr行是 ...

  9. php中is_null,empty,isset,unset 的区别详细介绍

    is_null, empty, isset, unset 我们先来看看这4个函数的描述. isset 判断变量是否已存在(配置)unset 把变量删除(释放)掉empty 判断变量是否为空is_nul ...

随机推荐

  1. WCF技术解剖2-TcpTracer路由解析代码

    TcpTrace路由解析,参考页面-http://www.cnblogs.com/artech/archive/2008/09/19/1294227.html. TcpTrace工具下载地址:http ...

  2. 培训补坑(day3:网络流&最小割)

    继续补坑.. 第三天主要是网络流 首先我们先了解一下网络流的最基本的算法:dinic 这个算法的主要做法就是这样的: 在建好的网络流的图上从源点开始向汇点跑一遍BFS,然后如果一条边的流量不为0,那么 ...

  3. BEE网站

    http://www.bee-framework.com/ http://syxiaqj.github.io/2014/02/28/bee-learning-1/#0-tsina-1-24637-39 ...

  4. java基础练习 20

    import java.util.Scanner; public class Twentieth { /*某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都 ...

  5. windows下利用线程池完成多任务的分配和运行

    在做项目的过程中有时候为了提升效率,用了多线程的方法来对任务进行分割和应用,后来发现,采用线程池的方法能更好的利用线程资源来计算任务,网上有很多关于如何运行线程池的例子,msdn上也给出了对应的例子: ...

  6. PHP获取IP的方法

    function getIP() { if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { $realip = $_SERVER['HTTP_X_FORWARD ...

  7. phpstudy无法访问主页,提示You don't have permission to access / on this server解决办法

    1.输入localhost提示:You don't have permission to access / on this server. 新版phpStudy为了安全,取消Apache和nginx列 ...

  8. UVA10305 Ordering Tasks (拓扑序列)

    本文链接:http://www.cnblogs.com/Ash-ly/p/5398586.html 题意: 假设有N个变量,还有M个二元组(u, v),分别表示变量u 小于 v.那么.所有变量从小到大 ...

  9. SRM 733 Div 1 爆零记

    开场写easy(有预感要FST) 然后medium就卡住了. 我只知道$n$个点的生成树个数是$n^{n-2}$ 接下来直接狗带…… $Problem 250pts$ 水题,直接枚举然后记录答案(我大 ...

  10. Python的Web编程[1] -> Web服务器[0] -> Web 服务器与 CGI / WSGI

    Web服务器 / Web Server 对于Web来说,需要建立一个Web服务器,必须建立一个基本的服务器和一个处理程序, 基本服务器的主要作用是,在客户端和服务器端完成必要的HTTP交互, 处理程序 ...