icon
icon

実際の業務で役立つ!Rubyでnilを使う方法【初心者向け】

初心者向けにRubyでnilを使う方法について解説しています。変数の中身が空かどうか確認する際に役立つので、ぜひ書き方を覚えておきましょう。実際にソースコードを書きながら解説しているので、初心者の方でもすぐ理解できるはずです。

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

今回はRubyでnilを使う方法を説明していきます。変数の中身が空かどうか確認する際に便利なので、ぜひ使えるようにしておきましょう。

Rubyについてそもそもよく分からないという方は、Rubyとは何なのか解説した記事をまずご覧ください。

 

なお本記事は、TechAcademyのWebアプリケーションオンラインブートキャンプの内容をもとに紹介しています。

 

田島悠介

今回はRubyのnilについて説明しようか。

大石ゆかり

田島メンター!!nilっていうのは何ですか〜?

田島悠介

nilは疑似変数のひとつで、そこに何もない状態を表すものなんだ。実際にどういうものなのか見てみよう。

大石ゆかり

お願いします!

 

目次

1時間でできる無料体験!

 

nilとは

nilとははいわゆる空文字というものです。

その場所がカラであるという事を示す、文字。文字がないのに文字がある。そんな状況ですね。

例えば、「b = nil」となれば、bという変数は文字を扱うが、初期値はカラ(nil)であるといえます。どんな時に使うかというと、文字が入ることは分かっているが、まだ決まっていない時に使います。

また、値として適切な文字列が見当たらなかったときに返却値として「nil」を指定することができます。

 

田島悠介

nilと似たものにemptyというのがあるね。

大石ゆかり

emptyはnilとどのように違うんですか?

田島悠介

nilは何もない状態、emptyはあるけれど中身が空だという状態なんだ。次は実際にコードを書いて練習してみよう。

 

[PR] Rubyのプログラミングで挫折しない学習方法を動画で公開中

nilの書き方

「nil」はカラを示す値でありますので、上記で示したように使ってください。「b = nil」のように使うのがわかりやすいでしょう。

また、返却値に使えるという話をしました。「return nil」のように使うといった感じです。

 

実際に書いてみよう

実際にソースコードを書いてみましょう。

sample.rb

#! /usr/bin/env ruby
#-*- coding: utf-8 -*-

def search(ini)
  if ini == "s" then
    return "Sato"
  elsif ini == "a" then
    return "Abe"
  else
    return nil
  end
end

puts "参照したい人のイニシャルを小文字で入力しなさい。"
print ">"
cmd = nil
cmd = gets.chomp
name = search(cmd)
print name

「a」「s」の時は「Abe」「Sato」が返ってきますが、それ以外では「nil」が返ってくるために文字が表示されていません。正確には「カラ」文字が表示されています。

まず、「def」で書かれているところは関数です。今回は「search」という関数を組みました。「gets」の後ろの「chomp」は空文字を取り除くためです。

実は「a」と打ったとしても、PCは終了を検知して「arn」と打ちます。この「rn」を取り除くのが「chomp」です。

「rn」が空文字なんですが、「nil」とは少し違います。

 

田島悠介

配列の中にnilの要素があった場合、それを除外して置き換え直す……というようなことが必要になってくる場合もあるよ。

大石ゆかり

なるほど、ちょっと難しいですがしっかり理解しておく必要がありますね。

田島悠介

nilは疑似変数だと言ったけれど、この変数には何か新しく値を代入するというようなことはできないんだ。存在しないという状態を表すものだということを覚えておこう。

大石ゆかり

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

 

関数は値を返す必要があることがしばしばありますが、何も返すものがないとき数字ならば0ですが、文字だと「nil」を返すことで対応できるという事です。

[お知らせ]TechAcademyでは初心者でも最短4週間でオリジナルサービスが作れるRuby on Railsオンラインブートキャンプを開催しています。

初心者・未経験でもできる。まずはテックアカデミーに相談しよう

プログラミングを独学で学習していて、このように感じた経験はないでしょうか?

  • ・調べてもほしい情報が見つからない
  • ・独学のスキルが実際の業務で通用するのか不安
  • ・目標への学習プランがわからず、迷子になりそう

テックアカデミーでは、このような 学習に不安を抱えている方へ、マンツーマンで相談できる機会を無料で提供 しています。
30分間、オンラインでどんなことでも質問し放題です。

「受けてよかった」と感じていただけるよう カウンセラーやエンジニア・デザイナー があなたの相談に真摯に向き合います。

「自分に合っているか診断してほしい」
「漠然としているが話を聞いてみたい」

こんなささいな悩みでも大丈夫です。

無理な勧誘は一切ありません ので、まずはお気軽にご参加ください。
※体験用のカリキュラムも無料で配布いたします。(1週間限定)

今なら参加者限定の割引特典付き! 無料相談を予約する