Tbpgr Blog

Employee Experience Engineer tbpgr(てぃーびー) のブログ

Ruby | nilやfalseを扱う三項演算子と && 演算子

概要

nilやfalseを扱う三項演算子と && 演算子

詳細

nilやfalseを扱う下記のような三項演算子

value ? value.some_method : nil
# または
value ? value.some_method : false

下記と等価です。

value && value.some_method

書籍 Confident Rubyでは後者の書き方を推奨しています。

サンプルコード

require 'tbpgr_utils'

['text', nil].each do |value|
  bulk_puts_eval binding, <<-EOS
value ? value.upcase : nil
value && value.upcase
  EOS
end
['text', false].each do |value|
  bulk_puts_eval binding, <<-EOS
value ? value.upcase : false
value && value.upcase
  EOS
end

出力

value ? value.upcase : nil # => "TEXT"
value && value.upcase # => "TEXT"
value ? value.upcase : nil # => nil
value && value.upcase # => nil
value ? value.upcase : false # => "TEXT"
value && value.upcase # => "TEXT"
value ? value.upcase : false # => false
value && value.upcase # => false