スライドショースライドショー

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

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

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

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

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

【基礎】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?について忘れてしまったら、この記事を思い出してくださいね。

LINEで送る
Pocket

無料でSEからWebエンジニアへ転職しませんか?



侍エンジニア塾では、完全未経験の方から現在SEだけどプログラミングはやっていないという経験者まで、幅広い方々の人生を好転させるプログラミング指導を行ってきました。SEの方とお話していくなかで、

  • システムエンジニアという職業だけどコードが書けない
  • 事務作業が多くスキルがないため将来が不安
  • スクールに通うと完全未経験者と同じスタートになるからレベルが合わない
という、すでに知識があるSEならではのお悩みがあることに気づきました。そんな方におすすめなのが、弊社の「転職コース 」です。

弊社では、マンツーマンでレッスンを行いますので、現在お持ちの知識レベルからカリキュラムを作成いたします。さらにこちらの転職コースは無料で受講を始められて転職成功でそのまま卒業できるというとてもお得なコースとなっています。

既に知識のあるSEといっても転職は年齢が若いほど受かりやすいため、まずは無料体験レッスンで今の現状や理想の働き方について一緒に考えていきましょう。

まずは無料体験レッスンを予約する

書いた人

ヤマシタ

エンジニア歴10年のフリーランスエンジニア。ITに関わるさまざまなコンテンツの企画・制作も行っています。
ITに関してはノウハウ系、ライフハック系、トレンド系など、200本以上の執筆経験があります。

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説