オーダーメイドコース
icon
icon

Rubyのnil判定を行う方法を現役エンジニアが解説【初心者向け】

初心者向けにRubyのnil判定を行う方法について現役エンジニアが解説しています。nilとは、存在しない、何も無いという意味です。他言語ではnullになっている場合もあります。サンプルではnil、空文字、空配列で判定しています。

テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日  調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名  調査手法:インターネット調査

Rubyのnil判定を行う方法について解説します。

 
そもそもRubyについてよく分からないという方は、Rubyとは何なのか解説した記事を読むとさらに理解が深まります。

なお本記事は、TechAcademyのオンラインブートキャンプRuby講座の内容をもとに紹介しています。
 

田島悠介

今回は、Rubyに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

Rubyのnil判定を行う方法について詳しく説明していくね!

大石ゆかり

お願いします!

 

nilとは

nilとは、「存在しない」という意味です。変数が初期化された時には、nilが割り当てられています。

ややこしいですが、0やfalse、[](空の配列)、{}(空のhash)、””(空文字)は、nilと扱われません。オブジェクトがnilかどうかを判定するのには、nil?メソッドが使用できます。

nil?はよく使うメソッドなので、覚えておきましょう。

emptyとの違いはなに?

emptyは、オブジェクトが「空」であるという意味です。つまり変数は代入されているが、中身がない状態です。

先ほど説明した、[](空の配列)、{}(空のhash)、””(空文字)がemptyに当たります。オブジェクトが空かどうかを判定するには、empty?メソッドが使用されます。

nil?と同様に、empty?もよく使うので押さえておきましょう。

[PR] 未経験からWebエンジニアを目指す方法とは

実際に実行結果を見てみる

それでは、いくつか試して実行結果の違いを確認しましょう。nil、””(空文字)、[](空配列)の3パターンで試しました。

 

nilの場合

a = nil
p a.nil?
p a.empty?

 

実行結果は以下の通りです。nilクラスには、empty?をしようできないのでエラーが発生します。

true
 .
 .
NoMethodError (undefined method `empty?' for nil:NilClass)

 

空文字の場合

msg1 = ""
msg2 = "msg"

p msg1.nil?
p msg1.empty?

p msg2.nil?
p msg2.empty?

 

実行結果は以下の通りです。

false
true

false
false

 

空配列の場合

a1 = []
a2 = [1,2,3]

p a1.nil?
p a1.empty?

p a2.nil?
p a2.empty?

実行結果は以下の通りです。

false
true

false
false

 

「何もない」状態と「空」の状態をプログラミングでは別のものとして扱います。わかりにくい部分なので、しっかり理解しましょう。

以上で解説を終わります。

 

筆者プロフィール

メンター金成さん

フリーランスエンジニア。
Railsの案件を中心に、様々なアプリケーションを開発してます。

使える言語は、ruby python go 。最近はgoにハマってます。

 

大石ゆかり

内容分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

 

TechAcademyでは、初心者でもRuby on Railsを使ったプログラミングを習得できるオンラインブートキャンプRuby講座を開催しています。

挫折しない学習方法を知れる説明動画や、現役エンジニアとのビデオ通話とチャットサポート、学習用カリキュラムを体験できる無料体験も実施しているので、ぜひ参加してみてください。