【Ruby入門】真偽判定empty?の使い方をわかりやすく解説

こんにちは!エンジニア兼ライターのヤマシタです。

プログラミングをする上で、文字列や配列などのオブジェクトが空文字かどうか判断してから処理を進めたい場合はよくあります。

「オブジェクトが空文字かどうか判別する方法を知りたい」
「さまざまなオブジェクトで空文字かどうか判断する方法を知りたい」

そのような方に向けて、この記事では真偽判定を行うempty?について以下の内容を解説します。

【基礎】empty?とは
【基礎】empty?を使用するためには
【基礎】empty?の基本的な使い方
【発展】empty?で条件式を記述する方法

empty?の使用方法について、パターン別にわかりやすく解説していますので、ぜひ参考にしてください!

empty?とは

empty?は、Rubyの真偽判定の1つで、オブジェクトの中身が空文字の場合に真となります。

空文字とは、値が「""」であったり空白である場合を指します。

empty?、present?、nil?、blank?は、それそれ以下のような違いがあります。

メソッドメソッドの意味
nil?変数の値がnilまたは、値なしの場合、真となります。
empty?変数の値が""(文字列の場合)や値が空白の場合、真となります。
nil?との違いは、empty?は変数の値はあることはあるが、その値が空を示している、という点です。
blank?nil?が真となる場合、または、empty?が真となる場合に、blank?は真となります。
簡単に言えば、blank?は値といえるものがない場合、真となります。
present?present?は、blank?全く逆の動作をします。present?は、値といえるものがある場合、真となります。

このような真偽判定を使用することにより、オブジェクトの値を演算や参照する前に値が空文字か、値が格納さてれいるか、など判断することができますので、値の事前チェックなどで活用することができます。

次項よりempty?を使用するための方法を見ていきましょう。

empty?の使い方

ここでは実際にempty?の使い方を見ていきましょう!

基本的な使い方

サンプルプログラム:

str1 = "hello" # false
str2 = ""      # true
str3 = "0"     # false
str4 = "100"   # false

p str1.empty?
p str2.empty?
p str3.empty?
p str4.empty?

実行結果:

false
true
false
false

このようにempty?を使用すれば、値が空文字の場合はtrueを返すことがわかりますね。

なお、数値が格納されているオブジェクトに対してempty?を使用すると「NoMethodError」のエラーが発生するので注意しましょう。

配列やハッシュの判定

以下のように配列やハッシュについても要素が空の場合はempty?はtrueを返します。

サンプルプログラム

array1 = []
array2 = ["a", "b", ""]
hash1 = {}
hash2= {"a" => "1","b" => "2","c" => "3",}

p array1.empty?
p array2.empty?
p hash1.empty?
p hash2.empty?

実行結果:

true
false
true
false

配列の要素別にempty?で値が空かどうか調べるには以下のように使用します。

サンプルプログラム:

array = Array["apple", "orange", "", "melon", "", "banana"]

for var in array do
    p var.empty?
end

実行結果:

false
false
true
false
true
false

empty?でif文を使用する

真偽判定を行うempty?は返り値にtrue、falseを返すのでif文で使用することもできます。

サンプルプログラム:

array = Array["apple", "orange", "", "melon", "", "banana"]

for var in array do
    if var.empty? then
        p "空文字です"
    else
        p var
    end
end

実行結果:

“apple"
"orange"
"空文字です"
"melon"
"空文字です"
"banana”

このようにif文の条件式でempty?を使って、配列の要素に対してそれぞれチェックできることがわかりますね!

その他の真偽値

Rubyの真偽値判定は前述したようにここで紹介したempty?以外にもさまざまな方法があります。

真偽値判定についてもっとよく知りたい方は以下の記事を参考にしてください!

まとめ

ここではRubyで文字列や配列などのオブジェクトが空か判断するためのempty?について解説しました。

  • empty?とは
  • empty?を使用するためには
  • empty?の基本的な使い方
  • empty?で条件式を記述する方法

empty?はオブジェクトが空文字かどうか判断するときに便利ですので、使い方については理解しておきましょう。

empty?について忘れてしまったら、この記事を思い出してくださいね。

LINEで送る
Pocket

「プログラミング、右も左もわからない…」という方にオススメ

当プログラミングスクール「侍エンジニア塾」では、これまで6000人以上のエンジニアを輩出してきました。

その経験を通してプログラミング学習に成功する人は、「目的目標が明確でそれに合わせた学習プランがあること」「常に相談できる人がそばにいること」「自己解決能力が身につくこと」この3つが根付いている傾向を発見しました。

侍エンジニア塾は上記3つの成功ポイントを満たすようなサービス設計に磨きをかけております。

cta_under_bnr

「自分のスタイルや目的に合わせて学習を進めたいな」とお考えの方は、ぜひチェックしてみてください。

書いた人

ヤマシタ

システムエンジニアとして10年勤務→フリーランスへ。現在は侍ブログ編集部としてこれまでに200記事以上の記事を執筆。
大規模システム開発からWebアプリ開発まで経験あり。最近ではPythonの機械学習に挑戦中。