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?もよく使うので押さえておきましょう。
実際に実行結果を見てみる
それでは、いくつか試して実行結果の違いを確認しましょう。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
「何もない」状態と「空」の状態をプログラミングでは別のものとして扱います。わかりにくい部分なので、しっかり理解しましょう。
以上で解説を終わります。
筆者プロフィール
メンター金成さん
フリーランスエンジニア。 使える言語は、ruby python go 。最近はgoにハマってます。 |
内容分かりやすくて良かったです!
ゆかりちゃんも分からないことがあったら質問してね!
分かりました。ありがとうございます!
TechAcademyでは、初心者でもRuby on Railsを使ったプログラミングを習得できるオンラインブートキャンプRuby講座を開催しています。
挫折しない学習方法を知れる説明動画や、現役エンジニアとのビデオ通話とチャットサポート、学習用カリキュラムを体験できる無料体験も実施しているので、ぜひ参加してみてください。