ruby中nil?, empty? and blank?
In Ruby, you check with nil? if an object is nil:
article = nil
article.nil?  # => true
empty? checks if an element - like a string or an array f.e. - is empty:
# Array
[].empty?   #=> true
# String
"".empty?   #=> true
Rails adds the method blank? to the Object class:
An object is blank if it‘s false, empty, or a whitespace string. For example, "", " ", nil, [], and {} are blank.
This simplifies
if !address.nil? && !address.empty?
to
if !address.blank?
.nil?
- It is Ruby method
- It can be used on any object and is true if the object is nil.
- "Only the object nil responds true to nil?" - RailsAPI
nil.nil? = true
anthing_else.nil? = false
a = nil
a.nil? = true
“”.nil = false
.empty?
- It is Ruby method
- can be used on strings, arrays and hashes and returns true if:
- String length == 0
- Array length == 0
- Hash length == 0
- Running .empty? on something that is nil will throw a NoMethodError
"".empty = true
" ".empty? = false
.blank?
- It is Rails method
- operate on any object as well as work like .empty? on strings, arrays and hashes.
nil.blank? = true 
[].blank? = true 
{}.blank? = true 
"".blank? = true 
5.blank? == false
- It also evaluates true on strings which are non-empty but contain only whitespace:
"  ".blank? == true"  ".empty? == false
Quick tip: !obj.blank? == obj.present?
activesupport/lib/active_support/core_ext/object/blank.rb, line 17 # (Ruby 1.9) 
def present? 
 !blank?
endruby中nil?, empty? and blank?的更多相关文章
- ruby中nil?, empty? and blank?的选择
		In Ruby, you check with nil? if an object is nil: article = nil article.nil? # => true empty? che ... 
- 【转】ruby中nil?, empty? and blank?的选择
		In Ruby, you check with nil? if an object is nil:article = nil article.nil? # => true empty? chec ... 
- Rails中nil? empty? blank? present?的区别
		.nil? Ruby方法 .nil?方法被放置在Object类中,可以被任何对象调用,如果是nil则返回true 在Rails中只有nil对象才会返回true nil.nil? #=> true ... 
- ruby : nil?, empty? and blank?的选择
		article = nil article.nil? # => true empty? checks if an element - like a string or an array f.e. ... 
- .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 ... 
- Rails :.nil? , .empty?, .blank? .present? 的区别
		.nil? , .empty?, .blank? .present? 的区别 首先这三个都是判空的. 而 .nil? 和 .empty? 是ruby的方法. .blank? 是rails的方法 .ni ... 
- 在 Ruby 中执行 Shell 命令的 6 种方法
		我们时常会与操作系统交互或在 Ruby 中执行 Shell 命令.Ruby为我们提供了完成该任务的诸多方法. Exec Kernel#exec 通过执行给定的命令来替换当前进程,例如: $ irb & ... 
- [翻译]理解Ruby中的blocks,Procs和lambda
		原文出处:Understanding Ruby Blocks, Procs and Lambdas blocks,Procs和lambda(在编程领域被称为闭包)是Ruby中很强大的特性,也是最容易引 ... 
- 理解Ruby中的作用域
		作用域对于Ruby以及其它编程语言都是一个需要理解的至关重要的基础知识.在我刚开始学习ruby的时候遇到很多诸如变量未定义.变量没有正确赋值之类的问题,归根结底是因为自己对于ruby作用域的了解不够, ... 
随机推荐
- Linux Ctrl+Z VS Ctrl+C  以及+Z的使用方法
			问题及处理: Ctrl+Z是将任务中断,但是此任务并没有结束,他仍然在进程中他只是维持挂起的状态,用户可以使用fg/bg操作继续前台或后台的任务,fg命令重新启动前台被中断的任务,bg命令把被中断的任 ... 
- UVA 10909 Lucky Number(树状数组+二分+YY)
			此题测试时预处理等了很久,结果470ms过了...... 题意:开始不怎么懂,结果发现是这个: 波兰裔美国数学家斯塔尼斯拉夫·乌拉姆(Stanislaw Ulam)在20世纪50年代中期开发出了另一种 ... 
- 如何在myEclipse中创建配置文件,比如:XXX.properties
			myEclipse是没有直接生成配置文件的方法,除非去配置某些插件. 目前通用的方法是:随便新建一个文件(比如:XXX.xml),然后对该文件重命名,改成XXX.properties即可. 很简单有没 ... 
- nova Scheduling 配置
			Nova中调度配置: scheduler_driver_task_period = scheduler_driver = nova.scheduler.filter_scheduler.FilterS ... 
- Compaction介绍
			Compaction介绍 Compaction是buffer->flush->merge的Log-Structured Merge-Tree模型的关键操作,主要起到如下几个作用: 1)合并 ... 
- Spring Boot入门——web相关配置
			1.Servlet 引用HttpServlet接口,采用原生的Servlet进行请求响应 2.Listener 引用ServletContextListener,常用于Web缓存 3.Filter 引 ... 
- 请求被中止: 未能创建 SSL/TLS 安全通道,以及解决方法,即:Could not create SSL/TLS secure channel
			C# 访问https请求被中止: 未能创建 SSL/TLS 安全通道(Could not create SSL/TLS secure channel) 以及 X509Certificate2 temp ... 
- Python基本语法(一)
			注释及注意 #代表注释:冒号:结尾时,接下来的代码会自动缩进,一般为4个空格.Python程序是大小写敏感的. 数据类型和变量 在Python中能够直接处理的数据类型有以下几种: 整数 浮点数 字符串 ... 
- UrlRewrite重写url
			UrlRewrite就是我们通常说的地址重写,用户得到的全部都是经过处理后的URL地址. 优点 (1)提高安全性 可以有效的避免一些参数名.ID等完全暴露在用户面前,如果用户随便乱输的话,不符合规则的 ... 
- 利用Pelican搭建个人博客
			博客基于win7系统,python2.7和pelican. 1.安装工具 安装virtualenv pip install virtualenv 下载make,或者make移动至任一目录,并将路径写入 ... 
