プログラミングをする上で、オブジェクトが空かどうか判断してから処理を進めたい場合はよくあります。
「さまざまなオブジェクトで空かどうか判断する方法を知りたい」
そのような方に向けて、この記事では真偽判定を行うblank?について以下の内容を解説します。
【基礎】blank?を使用するためには
【基礎】blank?の基本的な使い方
【発展】blank?で条件式を記述する方法
blank?の使用方法について、パターン別にわかりやすく解説していますので、ぜひ参考にしてください!
blank?とは
blank?は、Rubyの真偽判定の1つで、オブジェクトの中身が空の場合に真となります。
blank?、present?、nil?、empty?は、それそれ以下のような違いがあります。
メソッド | メソッドの意味 |
---|---|
nil? | 変数の値がnilまたは、値なしの場合、真となります。 |
empty? | 変数の値が""(文字列の場合)や値が空白の場合、真となります。 nil?との違いは、empty?は変数の値はあることはあるが、その値が空を示している、という点です。 |
blank? | nil?が真となる場合、または、empty?が真となる場合に、blank?は真となります。 簡単に言えば、blank?は値といえるものがない場合、真となります。 |
present? | present?は、blank?全く逆の動作をします。present?は、値といえるものがある場合、真となります。 |
次項よりblank?を使用するための方法を見ていきましょう。
blank?を使用するためには
真偽判定のblank?、present?などを使用するためにはgemによって提供されているActiveSupportをインストールする必要があります。
ActiveSupportは、ターミナルから以下のコマンドを実行します。
$ gem install activesupport
ActiveSupportをインストールして、実際に使うためにはソースコードの先頭で以下のように宣言します。
require ‘active_support/all’
これでActiveSupportが使用できるようになりました。
blank?の使い方
ここでは実際にblank?の使い方を見ていきましょう!
基本的な使い方
サンプルプログラム:
require 'active_support/all' num1 = 10 # false num2 = nil # true num3 = 0 # false str1 = "hello" # false str2 = "" # true bool1 = true # false bool2 = false # true p num1.blank? p num2.blank? p num3.blank? p str1.blank? p str2.blank? p bool1.blank? p bool2.blank?
実行結果:
false true false false true false true
このようにblank?を使用すれば、値がnillまたは空文字の場合はtrueを返すことがわかりますね。
bool値の場合はfalseの場合でもblank?ではtrueを返します。
配列やハッシュの判定
以下のように配列やハッシュについても要素が空の場合はblank?はtrueを返します。
サンプルプログラム:
require 'active_support/all' array = [] hash = {} p array.blank? p hash.blank?
実行結果:
true true
配列の要素別にblank?で値が空かどうか調べるには以下のように使用します。
サンプルプログラム:
require 'active_support/all' array = Array["apple", "orange", "", "melon", "", "banana"] for var in array do p var.blank? end
実行結果:
false false true false true false
blank?をif文で使用する
真偽判定を行うblank?は返り値にtrue、falseを返すのでif文で使用することもできます。
サンプルプログラム:
require 'active_support/all' array = Array["apple", "orange", "", "melon", "", "banana"] for var in array do if var.blank? then p "値は空です" else p var end end
実行結果:
"apple" "orange" "値は空です" "melon" "値は空です" "banana"
このようにif文で処理を分岐することができました!
その他の真偽値
Rubyの真偽値判定は前述したようにここで紹介したblank?以外にもさまざまな方法があります。
真偽値判定についてもっとよく知りたい方は以下の記事を参考にしてください!
まとめ
ここではRubyでオブジェクトが空か判断するためのblank?について解説しました。
- blank?とは
- blank?を使用するためには
- blank?の基本的な使い方
- blank?で条件式を記述する方法
blank?はオブジェクトが空、nilかどうか判断するときに便利ですので使い方については理解しておきましょう。
blank?について忘れてしまったら、この記事を思い出してくださいね。