Som*_*ory 36 ruby object ruby-on-rails-3
可能重复:Ruby on Rails中nil v.vull v.blank
的简明解释
谁能告诉我.nil?,.blank?,.empty之间的区别?在红宝石?
任何答案都将受到高度赞赏.
mik*_*kej 65
在Ruby中,nil在一个对象(类的单个实例NilClass)中,可以在其上调用方法.nil?在Ruby的标准方法,可以在调用的所有对象,并返回true的nil对象,并false为别的.
empty?是一些标准的Ruby方法,用于某些对象,如数组,哈希和字符串.它的确切行为将取决于特定对象,但通常true在对象不包含元素时返回.
blank?是不是一个标准的Ruby方法,但是被添加到所有由Rails的对象,并返回true对nil,false空或空格的字符串.
因为empty?没有为所有对象定义,所以NoMethodError如果你打电话empty?,你会得到一个nil,以避免必须写像if x.nil? || x.empty?Rails添加blank?方法的东西.
在回答之后,我发现之前已经问过这个问题,所以你也应该检查这个问题的答案.
fl0*_*00r 26
感觉它;)
零?
nil.nil?
#=> true
[].nil?
#=> false
"".nil?
#=> false
" ".nil?
#=> false
Run Code Online (Sandbox Code Playgroud)
空的?
[].empty?
#=> true
nil.empty?
#=> undefined method
"".empty?
#=> true
" ".empty?
#=> false
Run Code Online (Sandbox Code Playgroud)
空白?
[].blank?
#=> true
nil.blank?
#=> true
"".blank?
#=> true
" ".blank?
#=> true
Run Code Online (Sandbox Code Playgroud)
Rib*_*oks 11
任何ruby变量都是一个对象,因此它可以被单元化/取消设置(设置为nil).nil?如果未初始化,则返回true
b = nil
b.nil? # true
b = 'string value'
b.nil? # false
Run Code Online (Sandbox Code Playgroud)
ruby中的数组,字符串和流可以不包含任何数据,因此它们可以为空.empty?如果是这样,该方法返回true
array = []
array.empty? # true
array << 5 << 4 # [5, 4]
array.empty? # false
string = "" # empty line
string.empty? # true
Run Code Online (Sandbox Code Playgroud)
blank?是ActiveSupport特定方法(在任何对象中都可用),并且在带有ActiveSupport的RubyOnRails中可用.如果object为nil或为空,则返回true.
| 归档时间: |
|
| 查看次数: |
35395 次 |
| 最近记录: |