御参拝、誠に有難う御座います。住職(管理人)の修羅観音です。
プログラミング言語Rubyには、様々なメソッドが御座いますが、頻繁に使うメソッドであり、尚且つ最初に覚えるのが出力メソッドでありましょう。
この寺院(ブログ)でも、Rubyで仏教プログラミングシリーズにて、たびたびputsメソッドを使ってきたものです。
Rubyでプログラミングをする際には、この出力メソッドは外せない部分です。
Rubyで頻繁に使う「puts」や「print」「p」と言った出力メソッドは、多くのRubyに関する本や教科書、またRubyを学べる独学習用サイトでは、最初に登場します。
ドットインストールやProgate等もそうですし、Rubyを使ってプログラミングをブログで教えていらっしゃる方々も、大方最初の方で伝えられています。
私がこれまでやって来た順序は、まあ、イレギュラーと言いますか、標準的な進め方ではありませんでしたね。
この寺院(ブログ)では、いきなり「timesメソッド」や「if」文を使っておりました。
これは、本当に、申し訳ない事に御座います。
恐らく、少しRubyをかじった辺りの人から、Rubyやプログラミングについてよくご存じの方でしたら、「最初は出力メソッドからでしょ。」と、突っ込みを入れられている事でありましょう。
そこで、今回はこの寺院(ブログ)でも、何気なく使ってきましたRubyの出力メソッド「puts,print,p」について、お伝え致します。
尚、Rubyで仏教プログラミングシリーズを、まとめてお伝えする総集編記事をこしらえた場合、今回の話を最初の方に出しておきます。
Contents
Rubyで最初に習う出力メソッド「puts,print,p」の概要
今回、Rubyで仏教プログラミングをする際に用いる出力メソッドについて、概要からお伝え致します。Rubyには、引数(ひきすう)のオブジェクトを出力するためのメソッドに「puts,print,p」があります。
他にも、「printf」「putc」などもありますが、頻繁に使ったり見かけるであろうRubyの出力メソッドは「puts,print,p」ですから、まずはこの3つから始めると宜しいかと存じます。
この「puts,print,p」はどれも、後に続く文字列や、変数であったら変数に代入されている値を出力するメソッドです。
例えば、「puts “南無阿弥陀仏”」と書くと、「南無阿弥陀仏」という文字が出力されます。
出力したい文字列は、「”(ダブルクォート)」か「’(シングルクォート)」で囲みます。
試しにやってみましょうか。
まず、「p.rb」というファイルを作って、そこにputsメソッドを使ったコードを書きます。

そして、実行して出力されているかを確認します。

きちんと「南無阿弥陀仏」という文字列が出力されましたね。
概要と基本的な使い方は、こんな感じです。

Rubyの出力メソッドの特徴:他のプログラミング言語よりも簡単でコードの分量が短くて済む
Rubyに限らず、どのプログラミング言語にも、出力メソッドと言いますか、文字列や値を出力する機能が御座います。そして、Rubyの特徴としてよく言われるのが、「簡単でわかりやすい」「コードが短く書ける」という事です。
例えば、私はProgateにて、JavascriptとJavaの基礎の基礎だけ履修しましたから、この二つの言語と比較してみましょう。
仏教者、特に禅仏教的には、比較をしない教えがありますけれども、現在地や立ち位置を明確化するための比較は、上手に活用したいものです。
まず、Javascriptから。
Javascriptで、文字列を表示する場合は、このように書きます。
次に、Javaで文字列を出力するプログラムを書いてみます。
では、最後にRubyの出力メソッド「puts」を使って、文字列を出力するプログラムを書いてみましょう。
どうでしょう、ぱっと見た感じで、Rubyの出力メソッドが、一番短く書けて、簡単に見えますでしょうか。
Rubyでは、()を省略できますし、JavascriptやJavaでは最後に必ず書く事になる「;(セミコロン)」を書かなくても良い、という特徴が御座います。
私も、Javascriptを学習中、ついつい忘れてしまって、動かなかった事を経験しております。
そういう書き忘れを気にしなくてよい部分があるのは、有り難し。
文字列を出力する場合を比較すると、Rubyは書く事が少なくて簡単である、という事を、把握して頂けたかと存じます。
ここで誤解無きよう、注意申し上げておきますが、これはプログラミング言語の優劣を言いたいわけではありませんからね。
あくまで、Rubyはこういう特徴ですよ、という話であり、自分が勉強中のRubyというプログラミング言語の特徴を知るための比較です。
Rubyで仏教プログラミング:出力メソッドを使って文字列と数字を表示してみる
Rubyの出力メソッドについて、基本的な事柄・概要を理解したところで、実践に移りましょう。プログラミングの上達や、血肉と化して自在にこなすには、月並みですが、やはり実践、実際に書いてみることが大切でありますからね。
ここでは、それぞれ「puts」「print」「p」に分けて、実践しながら解説していきます。
尚、出力する文字は、Rubyで仏教プログラミングと題しているのですから、ここは仏教らしく「南無阿弥陀仏」で統一致します。

Rubyの出力メソッド1:puts
1番目に学ぶ、Rubyの出力メソッドは「puts」です。私は、この「puts」を、Rubyを勉強し始めたときに学びました。
putsメソッドには、「改行を加えて出力する」という機能・特徴が御座います。
使い方は、上の方で一度やってみせましたね。


改行について視覚的に知るために、連続して文字列を表示させてみます。

これを実行した結果が、下の画像です。

これは、きちんと改行されているのですが、これだとわかりにくいかと存じます。
そこで、よりわかりやすくするために、配列をputsで出力してみましょう。
配列は、配列変数「namuamidabu」に、それぞれ[“なむ” , “あみ” , “だぶ”]と入力します。

そして、この配列をputsメソッドを使って出力すると、このようになります。

配列の中身が、改行されながら出力されていく様子が、把握出来るかと存じます。
また、これはputsメソッドだけではなく、printメソッドもpメソッドも共通の事柄として、演算子(+や-等のこと)を用いる事で、文字を付け加えてくっつけたりも出来ます。
例えば、
と書いて実行すると、「南無阿弥陀仏」と出力されます。


その他、putsの後ろで出力したい数字を書くと、その数字が出力されます。
数字の場合は、「”(ダブルクォート)」「’(シングルクォート)」を書かず、直接数字を書き込みます。
もし数字を「”(ダブルクォート)」「’(シングルクォート)」で囲むと、文字列として認識されます。
また、putsの後ろで数字を使って計算することも出来ますし、変数を使えば、変数に代入された値を出力したり、変数を使った計算も出来ます。
これらを、一気にやってみましょうか。
まず、putsの後ろに直接・ダイレクトに数字を入れた場合と、計算式を書いた場合です。

出力結果がこれです。

次に、数字を「”(ダブルクォート)」「’(シングルクォート)」で囲んだ場合。


文字列として認識されているために、10+10ではなく「10」と「10」が表示されます。
最後に、変数を使った場合。


putsメソッドの基本的な話は、このようなところです。
お使いの環境で、putsメソッドを使って、更に文字列をくっつけてみたりと、色々と実験して動作を確認されると宜しいかと存じます。

Rubyの出力メソッド2:print
二番目にお伝えする、Rubyの出力メソッドは、「print」です。printメソッドも、putsと同じくよく使われるRubyのメソッドです。
putsとの違いは、「改行があるかないか」です。
百聞は一見にしかず、実際にプログラムを書いて、実行してみましょう。
まず、printメソッドを使って、「”南無阿弥陀仏”」を出力します。
今回は、改行しているか否かをわかりやすくするために、連続して表示して書いてみます。

これを実行すると、こうなります。

putsの場合でしたら、「南無阿弥陀仏」が2つ出力されるプログラムを2行に分けて書くと、改行がされていますから、2行で出力されます。
一方、今やってみたprintを使った場合ですと、改行がされていませんから、一行で「南無阿弥陀仏南無阿弥陀仏」と出力されます。
では、printメソッドは絶対に改行出来ないかというと、そうではありません。
printメソッドを使いながら、改行もしたい場合、「\n(バックスラッシュエヌ)」を用います。
printメソッドを使って、「南無阿弥陀仏」を2行で出力したい場合は、このように書きます。

これを実行すると、「南無阿弥陀仏」が、きちんと二行で出力されます。

改行をどうするか如何で、putsとprintを使い分けると宜しいかと存じます。
Rubyの出力メソッド3:p
三番目に学ぶ、Rubyの出力メソッドは「p」です。pメソッドは、主にデバッグの時に使用される出力メソッドと言われております。
pメソッドの特徴は、putsやprintの時に文字列を囲んだ「”(ダブルクォート)」であったり、printで改行を施す場合に用いた「\n(バックスラッシュエヌ)」も表示・出力する機能が御座います。
試しに、1行目は「”南無阿弥陀仏”」を、2行目は「”なむあみだぶつ\n”」と入力して、出力してみましょう。

これを実行すると、以下の画像の通りに出力されます。

どうでしょう。
きちんと「”(ダブルクォート)」も、「\n(バックスラッシュエヌ)」も、可視化されていますね。

Rubyの出力メソッド「puts,print,p」で、プログラミングの一歩目を踏み出す
今回のRubyで仏教プログラミングは、Rubyを学ぶ時に初期段階で習う事になる、出力メソッドについて学習致しました。putsもprintもpも、これから使っていくことになるでしょうから、特徴を把握して、使い所できちんと使えるようにしておきたいものです。
改行ありきでプログラムを組む場合は、いちいち「\n」を何度も書かなければならないprintメソッドを使うよりも、putsメソッドを用いる方が良いでしょう、という具合に。
尚、今回は配列にも少し触れましたから、配列を学びたい方は、こちらで学んで頂けます。
参照記事:「Rubyで仏教プログラミング|配列を使って高僧を表示・出力していく」
その他、連想配列と呼ばれているハッシュは、こちらでお伝えしております。
参照記事:「Rubyで仏教プログラミング|ハッシュを使って高僧の名前と年齢を表示・出力する」
その他のメソッドであったり、if文や繰り返し文についても、お伝えしております。
参照記事:「Rubyで仏教|timesとifで「十念」をプログラミングしてみた」
参照記事2:「Rubyで仏教プログラミング|while文で三唱礼・一千礼拝行を表現する」
参照記事3:「Rubyで仏教プログラミング|getsを使って24時間不断念仏会の修養証プログラムを作る」
Rubyで仏教プログラミングシリーズも、結構増えてきましたから、ここらで一度、まとめておいた方が宜しいでしょうね。
合掌、礼拝