iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 10
0
自我挑戰組

Junior Ruby on Rails 工程師的心得與自我挑戰 30 天 (單身狗轉移注意力之歷練)系列 第 10

[2019 鐵人賽 Ruby on Rails] Day10 - .nil? .empty? .blank? .present?

  • 分享至 

  • xImage
  •  

.nil?

nil.nil?       #true
[].nil?        #false
{}.nil?        #false
"".nil?        #false
" ".nil?       #false
"abc".nil?     #false
123.nil?       #false
  • ruby method
  • 任何物件都是 false,只有 nil 是 true

.empty? & .any?

nil.empty?     #NoMethodError: undefined method `empty?' for nil:NilClass
[].empty?      #true
{}.empty?      #true
"".empty?      #true
" ".empty?     #false
"abc".empty?   #false
123.empty?     #NoMethodError: undefined method `empty?' for 123:Fixnum
  • ruby method
  • 只要是空值就是 true(空白不算空值)
  • 相對的 method 是 any?
nil.any?       #NoMethodError: undefined method `any?' for nil:NilClass
[].any?        #false
{}.any?        #false
"".any?        #NoMethodError: undefined method `any?' for "":String
" ".any?       #NoMethodError: undefined method `any?' for "":String
"abc".any?     #NoMethodError: undefined method `any?' for "":String
123.any?       #NoMethodError: undefined method `any?' for 123:Fixnum
  • 但是要注意,String 並沒有提供 .any? 這個 method

.blank? & .present?

nil.blank?     #true
[].blank?      #true
{}.blank?      #true
"".blank?      #true
" ".blank?     #true
"abc".blank?   #false
123.blank?     #false
  • Rails method
  • 只要是 nil,空值都是 true
  • 有點像是 Object.nil? || Object.empty? 的綜合體,但條件比 .empty 寬鬆一點,空白也會是 true
  • 相對的 method 是 present?
nil.present?   #false
[].present?    #false
{}.present?    #false
"".present?    #false
" ".present?   #false
"abc".present? #true
123.present?   #true

上一篇
[2019 鐵人賽 Ruby on Rails] Day09 - frozen_string_literal: true 有什麼作用 !?
下一篇
[2019 鐵人賽 Ruby on Rails] Day11 - Ruby 裡的 %Q, %q, %W, %w, %x, %r, %s, %i
系列文
Junior Ruby on Rails 工程師的心得與自我挑戰 30 天 (單身狗轉移注意力之歷練)30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言