プログラミングをする上で、文字列や配列などのオブジェクトが空文字かどうか判断してから処理を進めたい場合はよくあります。
「さまざまなオブジェクトで空文字かどうか判断する方法を知りたい」
そのような方に向けて、この記事では真偽判定を行う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?について忘れてしまったら、この記事を思い出してくださいね。