はじめてのRuby!inspectとは!?使い方を徹底解説!

rubyには、オブジェクトや配列をわかりやすい文字列で返すメソッドとして、inspectメソッドが用意されています。

「オブジェクトや配列をわかりやすく出力するには?」
「inspectメソッドの使い方/書き方は?」
「inspectとto_sって何が違うの?」

といった方に向けて、この記事では、


【基礎】inspectメソッドとは何か?
【基礎】inspectメソッドの使い方
【発展】inspectとto_sの違い

など、inspectメソッドについての基礎から発展的な内容について解説していきます。

inspectとは

inspectメソッドとは、オブジェクトや配列などをわかりやすく文字列で返してくれるメソッドです。

実はデバッグでよく利用されるpメソッド(標準出力するメソッド)は、このinspectメソッドが使われています。

そのinspectメソッドの構文は以下のように表せます。

inspectメソッドの概要と書き方が分かったところで、次の項ではinspectメソッドの使い方について解説いたします。

inspectメソッドの使い方

inspectメソッドは、Objectクラスで定義されており、クラス名・オブジェクトid・インスタンス変数を出力します。

さらに、Stringクラス、Hashクラス、Arrayクラス、などそれぞれのクラスでinspectメソッドはオーバーライド(上書き)されています。

つまり、inspectメソッドは対象の型に沿った文字列を返すのです。

それでは、それぞれの型でinspectメソッドを使用した場合、どのように出力されるか具体的に確認していきましょう。

文字列や数値をinspectで出力する

inspectメソッドは文字列や数値の場合、値をそのまま出力します。

実行結果:

配列やハッシュをinspectで出力する

配列やハッシュの場合は、全体を[]または{}で囲み、各要素をそれぞれinspectメソッドで出力した結果が返ります。

実行結果:

モジュールやクラスをinspectで出力する

対象がモジュールの場合、モジュール名が実行結果として出力されます。

また、対象がクラスの場合、「#<クラス名:オブジェクトid インスタンス変数>」が実行結果として出力されます。

以下に、モジュールとクラスの場合のサンプルプログラムを記載します。

実行結果:

inspectとto_sの違いとは

inspectメソッドと同様のメソッドが他にもあります。

それはto_sメソッドです。

しかし、細かい部分で挙動が異なってくるので、この項ではinspectメソッドとto_sメソッドの違いを解説いたします。

nilの場合

nilをinspectメソッドとto_sメソッドで出力した場合、両者で異なる出力結果となります。

実行結果:

inspectメソッドではnilを文字列として出力しますが、to_sメソッドではそのままnilとして出力しています。

文字列の場合

文字列を指定した場合にも、異なる出力結果となります。

実行結果:

文字列を指定してinspectメソッドとto_sメソッドで出力した場合、ダブルクォーテーションの有無の違いが生じます。

クラスの場合

クラスオブジェクトの場合も、inspetメソッドとto_sメソッドに違いが生じます。

実行結果:

inspectメソッドではクラス名とオブジェクトidとインスタンス変数を出力しますが、to_sメソッドはクラス名とオブジェクトidのみ出力しインスタンス変数は出力しません。

このようにinspectメソッドとto_sメソッドでは、同じ「文字列を返す」メソッドでも微妙に違いがあるので使用する際には注意が必要です。

まとめ

この記事では、inspectメソッドの使い方をサンプルプログラムを用いて解説しました。

inspectメソッドは、オブジェクトや配列をわかりやすい文字列で返してくれるメソッドです。

ただ、inspectメソッドとto_sメソッドの違いについて注意しておく必要があります。

デバッグの際にも役に立つメソッドなので、ぜひこの機会にinspectメソッドをマスターしてください!

Rubyカリキュラム無料公開中!

この記事はRuby入門完全攻略ガイド【基礎学習/アプリ開発/仕事獲得】の一部になります。このカリキュラムは、プログラミング入門者が、基礎学習からアプリ開発、さらには仕事獲得まで体系的に学べる内容となっています。

Ruby学習に必要な情報を一つにまとめていますので効率よくRubyを学ぶことが出来ます。この機会に是非活用していただければと思います。

【Ruby入門ガイド】アプリ開発で知っておくべき知識を総ざらい
更新日 : 2018年11月23日

Rubyを最短で習得したい方へ

近年では様々なWEBサービスが流通するようになりました。

WEBサービスの普及が進むにつれて、それらを素早く開発するのに長けたRubyの人気は今後さらに増し、Rubyエンジニアの需要も自ずと増えることは間違いなしでしょう。

元々ITリテラシーの高い方や他言語を習得している方であれば、独学でRubyを習得することが可能です。

ただし、プログラミング学習をしている方の多くは

「自分に合った教材が見つけられずに挫折してしまった」
「勉強のための勉強になってしまい、ゴールが見えない」
「情報が少なくどう調べればいいかわからない」
「エラーを解決するのに何日もかかってしまう」

このような悩みを抱えたまま挫折してしまうのが現実となっています。

  • もう挫折したくない
  • 本業と両立しながら、好きな時間で自分のペースで勉強を続けていきたい
  • 自分だけのカリキュラムで効率的に勉強したい
  • WEBアプリケーション開発までしっかりサポートして欲しい
そんな方はお気軽に侍エンジニア塾までご相談ください。

お一人お一人に専属のインストラクターがつくので、初心者の方がつまづきがちな、「CookPad」、「Wantedly」、「食べログ」のようなWEBアプリケーション開発方法もスムーズに学習することできます。

実際にオリジナルWEBアプリを開発し、成果物として認められて仕事獲得に成功した塾生は数多くいます。

このように、オリジナルアプリ開発から仕事獲得まで徹底的にサポートすることでプログラミング初心者の方でも安心して基礎学習に取り組むことができます。

まずは『無料体験レッスン』で、弊社のコンサルタントと一緒にあなた専用の学習方法やカリキュラムを考えてみませんか?

Rubyならではの学習方法や、現役フリーランスRubyエンジニアから貴重なアドバイスを受けることができます。

詳しくは下の画像から弊社サービス内容をご確認ください。

ruby_a1
LINEで送る
Pocket

書いた人

侍テック編集部

侍テック編集部

おすすめコンテンツ

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

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