Rubyのputs p printfでコンソールに値を出力する方法を解説
  • facebookページ
  • twitterページ
  • 2021.04.26

    Rubyのputs p printfでコンソールに値を出力する方法を解説

    Rubyには、コンソールへ値を出力するメソッドとして、一般的に次の3つのメソッドのいずれかを使用します。

    • putsメソッド
    • pメソッド
    • printfメソッド

    どのメソッドも、コンソールに値を出力すると言う意味では同じですが、それぞれメソッドに渡す引数の違いや、出力される内容に違いがありますので、これらの違いにも本記事は触れていきます。

    コンソールアプリを作る時はもちらんのこと、それ以外でも変数の内容を出力したりするデバッグ用途でも、これらのメソッドは大活躍するため、是非とも使い方を覚えておきましょう。

    「puts」メソッド

    最初は「puts」メソッドの使い方を見ていきましょう。

    putsメソッドの使用方法は次の通りです。

    引数は、メソッド名の後にスペースを空けて指定します。

    通常、メソッドを呼び出すときは「 メソッド名(引数)」のように括弧て囲って引数を指定しますが、 putsメソッドでは引数を括弧で囲う必要がありません。

    引数に指定するオブジェクトは、文字列型以外にも、数値や配列、クラスオブジェクトなどの任意の値が指定でき、実行時にはそれらを文字列表現した値が出力されます。

    「puts」メソッドの基本的な使い方

    基本的な使い方として、数値と文字を putsメソッドで出力するサンプルコードを作って実行してみましょう。

    ↓実行結果

    上の実行結果のように、 putsメソッドは引数で指定した値を出力した後、末尾に自動的に改行します。

    自動的に改行が行われるため、あえて末尾に改行コードを指定した場合は改行が重複するため無視されます。ただし、文字列の途中に指定した改行コードは有効となりその位置で改行が行われます。

    引数で指定する値を、シングルクォーテーション ( ‘ )で囲うと、改行コードの \nやその他の特殊コードはそのまま出力することができます。

    変数の値を出力する

    ここまで putsメソッドに、文字や数値などの値を指定してきましたが、変数名を putsメソッドの引数に指定することで、その変数の中身の値を出力できます。

    配列の値を出力

    putsメソッドの引数に配列オブジェクトを指定すると、配列の各要素の値を出力できます。
    この方法は、配列の中身をデバッグで確認したい時になどに非常に便利なので、是非覚えておきましょう。

    このように、 putsメソッドの引数に配列を指定すると、配列の各要素の値が1行ずつ出力されます。

    複数の値を出力する

    putsメソッドに複数の引数を指定することで、まとめて複数の値や変数の内容を出力することが可能です。

    「p」メソッド

    次は「p」メソッドの使い方を見ていきましょう。構文は putsメソッドと同じで、次のように使用します。

    引数に指定するオブジェクトは、 putsメソッド同様に文字列、数値、配列およびクラスオブジェクトなどの任意の値が指定できます。

    ポテパンダの一言メモ

    「p」と「puts」メソッドの違いとしては、 pメソッドは引数の値と型情報(文字列や数値型など)も一緒に出力される点で機能が異なります。詳しくは以降のサンプルコードて紹介で詳しく解説しています。

    「p」メソッドの基本的な使い方

    数値と文字を pメソッドで出力するサンプルコードを作って実行してみます。

    数値はそのまま出力されていますが、上の実行結果を見て分かる通り、文字列の場合、値がダブルクォーテーションで囲われて出力されています。

    このように、型情報が出力される点が、 putsメソッド pメソッドでの異なる点です。

    その他の点については、基本的には putsメソッドと同じで、変数の中身を出力したり、配列を引数に指定したりして、個々の要素を出力することなどは同じようにできます。

    「printf」メソッド

    続いて、 printfメソッドの使い方について見ていきましょう。

    printfメソッドは、C 言語の printf と同じように動作するメソッドで、フォーマットに従い引数を文字列や数値などのオブジェクトを指定して出力します。

    printfの構文は次の通りです。

    1つ目の引数には、 C 言語の printfメソッドなどで指定するフォーマットを渡します。

    2つ目以降の引数には、フォーマットで指定した指示子( %s%dなど)に対応するパラメータを指定します。指示子を複数指定した場合は、先頭から指定した指示子の順に、対応するパラメータを指定します。

    「printf」メソッドの基本的な使い方

    次のサンプルコードは、数値型の変数の値を printfメソッドで出力する例です。これまで紹介した putspメソッドとは異なり、 printfメソッドでは引数を括弧で囲って指定します。

    このように、数値を printfメソッドで出力する時は指示子に %dを指定し、2つ目の引数には %dで指定した位置に出力する数値の値を指定します。

    文字列を printfメソッドで出力する場合は、指示子に %sを指定します。

    この他にも printfメソッドでは、次の表に示す指示子が使用できます。

    指示子 意味
    %c 引数の数値を文字コードとみなして対応する文字を出力
    %s 文字列を出力
    %p inspectメソッドを呼び出した結果を出力
    %b, %B 数値を2進数で出力
    %o 数値を8進数で出力
    %d, %i 数値を10進数で出力
    %x, %X 数値を16進数で出力
    %f 999.999のような小数点の表現で数値を出力
    %e 9.999e+10のような指数表現で数値を出力
    %% %そのものを出力(%のエスケープ シーケンス)
    幅の指定がある場合に出力を左寄せにする。
    + + または -の符号を出力
    空白 数値が負の数のとき -を出力。正の数の時は半角スペースを出力。
    数値 幅を指定する。ここで指定された数だけスペースが埋められた文字が出力される。
    0 幅の指定時に、あまった文字をスペースではなく0で埋める。

    書式を指定して数値を出力

    printfメソッドの特徴として、ゼロ埋め処理とも呼ばれる、数値を指定桁数になるまで左側に0を埋めることや、左詰/右詰などの位置指定での書式が指定が可能です。

    次のサンプルコードでは、数値を6桁になるまで左側にゼロを埋めています。

    改行コードは出力されない

    putspメソッドでは、末尾に自動的に改行コードが挿入されていますが、 printfメソッドは自動的に改行は挿入さません。

    次のサンプルコードのように、改行コードを付けずに printfメソッドを複数回コールすると、改行されずに1行に出力されます。

    「printf」メソッドで配列は出力できる?

    配列を出力する指示子は printfメソッドには存在しませんが、文字を出力する%s`指示子に配列を指定することで、配列の中身をカンマ区切りで出力することが可能です。

    「puts」「p」「printf」を使い分けよう

    Rubyの「puts」「p」「printf」の違いや簡単な使い方を解説してきました。

    それぞれのメソッドの特徴を確認して、用途に応じて使い分るようにしましょう。

    【関連記事】
    Rubyでログを出力するには?loggerクラスの機能と使い方を解説



    優良フリーランス案件多数掲載中!
    フリーランスエンジニアの案件をお探しなら
    ポテパンフリーランス

    この記事をシェア

    • Facebookシェア
    • Twitterシェア
    • Hatenaシェア
    • Lineシェア
    pickup









    ABOUT US

    ポテパンはエンジニアと企業の最適なマッチングを追求する企業です。

    READ MORE