19:00Rubyで、文字や文字列をコンソールに出力するメソッドについてまとめました。Rubyの出力メソッドRubyには、文字と文字列を出力メソッドがいくつかあります。今回は、これらのメソッドの中で、コンソールに出力するものについてまとめました。今回使用するRubyのバージョンは、Ruby2.2.3です。私が調べた限りのメソッドの一覧です。putcputsprintprintfpそれぞれについて、詳しく見ていきます。メソッドの説明は公式のドキュメントを参考にしています。putcメソッドこのメソッドは、引数が0〜255の整数ならば、それに対応する文字を出力します。文字列が引数として渡された場合は、先頭の1byteを出力します。このことから、putcメソッドは文字を出力するメソッドであるといえます。サンプルを下記にまとめておきます。48出力は下記のとおりです。ab0putcメソッドは改行をしないので出力がつながっています。このように、たとえ文字列を渡しても先頭の1byteのみが取り出されて出力されます。putsメソッドこのメソッドは、引数と改行を順番に出力するメソッドです。引数が文字列であれば、その文字列を出力して最後に改行をします。このとき、文字列の末尾に改行があれば、その改行のみを行い、メソッドのほうで新たに改行することはありません。引数が配列であれば、要素と改行を交互に繰り返します。それ以外の引数の場合は、そのオブジェクトをto_aryによって配列にして、to_sメソッドで文字列にして出力します。サンプルを下記にまとめておきます。"def"]出力は下記のとおりです。abcdefabcdefプログラムの1行目では、文字列の出力をしています。2行目では、末尾に改行がある文字列を引数としてputsメソッドを実行して、改行が行われないことを確認しています。3行目では、配列を引数としています。printメソッドこのメソッドは、引数を出力するメソッドです。引数が文字列の場合は、そのまま出力します。最後に改行をしません。引数が文字列以外の場合は、to_sメソッドで文字列にしてから出力します。putsメソッドと違って最後に改行をせず、文字列以外が引数の場合はそのまま文字列にして出力します。サンプルを下記にまとめておきます。"def"]出力は下記のとおりです。"def"]最後に改行をしないので、一部出力がつながっています。プログラムの1行目では、文字列の出力をしています。最後に改行がないので、2行目と出力がつながっています。2行目では、最後に改行文字を追加した文字列を引数として、最後に改行をするようにしています。3行目では、文字列以外の引数として、配列を引数としています。printfメソッドprintfメソッドは、C言語のprintf関数と同じようにフォーマットを指定して出力ができるメソッドです。出力に関して、引数は全て文字列に変換されて出力されます。フォーマットの指定できる種類はたくさんあるので、ドキュメントを参考にしてください。Kernel.#format一部の違いはありますが、C言語の関数のフォーマットとほとんど同じことができます。pメソッド主にデバッグ用に用いるメソッドです。putsメソッドやprintメソッドでは気づかないような、クラス間の差異を見つけることができます。putsメソッドでは文字列を出力させるときに、そのまま文字列を出力しますが、pメソッドでは文字列であることがわかるように出力を""ダブルクォーテーションで囲ってくれます。今回、コンソールに出力するメソッドについてまとめました。使い分けとしては、デバッグ用にはpメソッド、通常の出力にはpメソッドかprintメソッド、出力の細かい指定をしたいときはprintfメソッドを使うのがいいと思います。