目次に戻る | 前のページへ | 次のページへ |
先ほどの
puts "Hello, world!" |
をもう一度見てみます.ほぼ全てのプログラミング言語におけるプログラムの記 述は,英語の単語を使った英語の文法に似た表現がベースになっています.そして,プ ログラムは人間がコンピュータに対して命令をするので,基本的には「命令文」 です.それを考慮すると,最初の
puts
が命令で,「出力しなさい」の部分になり,「目的語」の「なになにを〜」が二 重引用符の「''」で囲まれた部分のようです.puts は英語の三人称単 数現在の形をしたputでは無く,最後のs (文字列,stringのs) までが一つの言葉ですので,間違えない ようにしましょう.
ところで,二重引用符は出力されていません.二重引用符は文字列の開始と終了 を示すために用いられている記号なので,結果には出てきません.二重引用符も 含めて表示する方法は,後で紹介します.
puts を利用した文字列の出力は,その目的語に相当する部分を複数与 えることが出来ます.そのときに,カンマ「,」で区切って文字列を与 えます.次の例で確認してみましょう.二重引用符とカンマがくり返し 出てきますので,間違いの無いようにしてください.
puts "abc", "def", "ghi" |
Rubyでスクリプトを書く場合,カンマで区切るときに,カンマの後にスペースを 入れる必要は無いのですが,スクリプトを見やすくするために適宜スペースを置 く方が良いでしょう.結果は,
abc def ghi |
のように文字列の一つ一つが一行ずつ表示されます.
さて,また,専門用語ですが,プログラムでは記述した内容の一つ一つを「文」 と呼びます.ここの表題の「 print 文」とは,print とい う命令を使った表現のことです.また,puts や print のよ うな命令は,オブジェクト指向言語では「メソッド」 (Method) と呼ばれます.
C言語のような関数型の言語では「関数」と言います.出力する方法はどの言語でも通常一つではありません.Rubyにもいろいろなメソッ ドが用意されていますが,代表的なものにこの print があります.先 ほどのスクリプトを puts から print に替えてみましょう.
print "abc", "def", "ghi" |
実行ボタンを押して得られる結果は先ほどとちょっと違いますね.こんどは1行に全部が表示されています.このよう に puts を使うのか, print にするのかは,複数の結果を 表示するときにどのように扱うか,その場合に応じて選択することになります. puts が単純なので,ちょっと表示したい場合には役に立ち ますが,出力形式を整形して目的とする形にするには print の方が適しているでしょう.
print を使う場合には,「改行文字」を必要とします.これは,UNIX 系のOSでは,\n と表現される特殊な文字です.この文字をコ ンピュータが見つけると,その段階で出力を改行してくれます.そこで, スクリプトを次のように変更します.
print "abc\n", "def\n", "ghi\n" |
改行文字も一つの文字なので二重引用符の中に与えます.これにより,出力結果 が1行ずつになります.
数値を桁数を指定して表示したり,文字を右や左に揃えたりして出力したい場合 に,このフォーマット付きの出力メソッドであるprintf を使います. 使い方はちょっと難しいので,後で変数などを学習してから改めて取り上げます.
これまでの出力メソッドが「文字列」の出力を行っているのに対し,ここで取り 上げるp メソッドでは,その目的とするものが何であるかを出力しま す.次のようなスクリプトを実行してみましょう.
p "abc" p 123 |
1行目の命令では,abcというものが文字列であることを示すので二重引用符つ きで出力されます.2行目の方は123という数値なので数値がそのまま出力され ます.後ほど,配列などを学習するとさらに違う結果の例が出てきます.
二重引用符が文字列の区切りの記号として利用されるために,通常の出力メソッ ドでは出力できませんでしたが,特殊な記号と併用すると出力できるようになり ます.先ほど改行文字として \n というものを見ましたが,ここでバッ クスラッシュ (場合によっては円マークに見えます) は次の文字の意味を打ち消 す動作を行います.すなわち,通常の n という文字ではなくなること を意味します.そこで,次のようなスクリプトを作ってみます.
print "\"abc\"\n" |
ずいぶんとややこしい構成になってしまいましたが,二重引用符の意味を打ち消 すバックスラッシュによりその直後の二重引用符はただの文字になっていますの で,結果の方に出力されます.
このようなややこしい表現を避けるために,文字列の開始と終了を二重引用符以 外の記号を使って表現することもRubyでは出来ますが,今日の内容からは省略し ます.
目次に戻る | 前のページへ | 次のページへ |