【Ruby初心者入門説明書】基本文法・記述方法を解説
Rubyを学習し始めるときに一番はじめに気になるのが、基本の文法や記述方法です。
プログラミング経験のある人であれば、感覚としてわかるかもしれませんが、今回は初めてプログラミングに触れる人でもわかりやすいようにRubyの基本文法・記述方法について解説していきます。
Ruby言語の基本文法
Rubyのプログラムを学習していくに当たって、参考書のサンプルコードを入力していくのは基本です。
しかし、なにも考えずにコピーしていくだけでは、あまり意味はありません。どうせなら、「なぜそんな記載をするのか」を考えながら入力した方が学習効果も高いでしょう。
ここでは、以下のサンプルコードを元に、Rubyの基本文法を説明していきます。
msg1 = “はろー Ruby1–“
msg2 = ‘Hello Ruby2-‘
puts(msg1)
puts msg2
puts(“Hello Ruby3”)
puts msg1 + “はろー Ruby3”
a = 10
b = 100
c = “10”
puts(a)
puts(b)
puts(c)
puts(3)
puts(a + b)
# puts(3 + c)
少し長いですが、ご了承ください。
(※「puts」というのは画面に表示させる命令(関数)です)
プログラムコードの解説
まずは、上述のプログラムコードの解説をしましょう。 「msg1 = “はろーRuby1–“」や「a = 10」というのは、「=」の左にある変数(箱)に、右にある文字列や値を格納する(代入する)ことを表しています。 そして、「puts(msg1)」や「puts(a)」はputsという関数に、括弧の中もしくは空白の後の変数や値などを渡していることを表しています。 つまり、このプログラムは、「代入した文字列や数値、および文字列や値をputs関数に渡して表示している」プログラムです。 他にも気になるところはあるかもしれませんが、それは後で説明しましょう。
Ruby言語の基本的な考え方
Ruby言語でプログラムを作っていく上で、重要な文法のひとつは、「プログラムは上から下へ順に処理される」ということです。 これは、ほとんどのプログラムでも言えることですが、プログラムは上から順に処理されていきます。そのため、最初にmsg1に「はろーRuby1–」を代入している瞬間には、msg2やa、bにはなにも入っていません。 逆に、msg1を表示した後にmsg1の内容が書き換わったとしても、すでに表示されている内容が変わることはありません。 人間はいろいろなことを並列に考えられますが、コンピュータは基本的にひとつのことしかできないと考えても良いかもしれません。(実際には並列処理も可能ですが、そのためにはそれ専用のプログラムを作成する必要があります)
Rubyの記述方法
基本の基本が分かったところで、具体的な記述方法を見ていきましょう。 Ruby言語は比較的自由に記載できるプログラム言語ですが、プログラムの見やすさ(可読性)などを考慮して、記述方法に一定の決まり事があります。 また、ちょっとした文字の違いで動きが変わることもありますので、いまのうちから気を付けておいた方が良い点も紹介してます。
基本的な記述方法
サンプルコードの中にある基本的な記述を羅列してみましょう。 ・「=」や「+」の左右には半角の空白を入れる ・関数に変数や値を渡すときは、関数の後ろの()の中に入れるか、空白をあける ・関数に変数や値を渡すときに計算式を入れても良い ・文字列は、””もしくは”で囲む ・「#」を入力すると、「#」からその行の末尾(改行)まではは無視される それぞれ、少し詳しく見ていきましょう。
空白の入れ方
まず1つめの「=」や「+」の前後の空白については、実際のところは入れなくても問題ありません。可読性の観点から入れた方が良いだけです。 しかし、関数の後ろの空白は必須です。空白がなければ、コンピュータはどこまでが関数を示しているのかが分かりません。 また、Rubyには以下の予約語と呼ばれるものがあります。(詳細は割愛します)
BEGIN class ensure nil self when
END def false not super while
alias defined? for or then yield
and do if redo true __LINE__
begin else in rescue undef __FILE__
break elsif module retry unless __ENCODING__
case end next return until
これらはプログラムの動作を決めるものですので、正確な解釈が求められます。そのため、必ず空白で区切らなければいけません。
つまり、()など区切りが分かるものがある場合は除いて、基本的にはすべて空白で区切るべきだと言えます。
関数へ渡す値の区切り
Rubyでは、関数へ値を渡す場合、()の中に入れる方法と、空白で区切る方法が使えます。
これは、他の言語から移行してきた人が容易にRubyを習得したり、他言語のプログラムをスムーズにRubyへ移植したりすることができる利点があります。
しかし、上述のように空白で区切ることで、不要なミスを助長する恐れがあります。そのため、Rubyを学習しようとしている皆さんは空白区切りではなく、()を使うようにしましょう。
計算式について
演算子の書き方そのものは、長くなりますので、ここでは割愛します。
ただし、計算式をどう扱うかについて、基本的な考え方を理解しておきましょう。
プログラムコードの中で計算式は記述するというのは、その結果がそこに挿入されるということです。
計算式をそのまま渡すということもうまくすれば可能ですが、そういったことをする必要がない場合がほとんどですので、まずは「できない」と考えておいた方が良いでしょう。
文字列について
“”もしくは’’で囲むことで、それは文字列として扱われます。しかし、なぜ、””と”のどちらでも良いのかが不思議に思うかもしれません。
当然ですが、””の場合と”の場合で、同じ文字列でも違う扱いがされます。ただの文字列を扱いたい場合は同じですが、特殊な文字を扱ったりする場合に動きが変わってくるのです。
詳細は長くなりますので、ここでは割愛しますが、ほとんどの場合は””を使っていれば問題が起きませんので、まずは文字列は””で囲むと憶えておいて良いでしょう。
コメント
「#」からその行の末尾(改行)までは、プログラムコードとは解釈されません。
そのため、「#」を使えば、プログラムコードの説明文(コメント)をプログラムの中に記入することができます。
小見出し:その他
ここで紹介しきれていない決まりで押さえておいた方が良いものもありますので、以下に紹介しておきます。
・インデントは空白2文字
・コメントは、1行の場合「#」、複数行の場合は「=begin」と「=end」で囲む。「__END__」以降はすべてコメントになる。
やってみよう
基本的な記述方法は以上です。
では、実際に、これらの記述法に従ってプログラムを書いて、Ruby環境で実行するための準備を行います。
とりいそぎは、最初に紹介したサンプルプログラムを実行するための準備をしていきましょう。
テキストエディタで入力する
テキストエディタを使って、サンプルコードを入力してください。
使用するテキストエディタはなんでも良いですが、Windowsのメモ帳では問題が発生しますので、気を付けてください。
サクラエディタなどの高機能テキストエディタを使用することをおすすめします。(ここでは、サクラエディタで説明します)
保存する
テキストエディタに入力したプログラムは、いったん保存しなければ実行できません。そのため、保存します。
なお、作成したファイルがあちこちに存在すると非常に面倒ですので、事前に格納用のフォルダを作成しておくことをおすすめします。
できるだけ階層の浅いところの方が都合が良いので、ここでは、Cドライブ直下に「Ruby」というフォルダを作成しています。
ただし、そのまま、ただ保存するだけでは、実行するときに困る場合がありますので、最初の1回は必ず次の手順を踏むようにしましょう。
(※2回め以降は上書き保存で問題ありません)
1.「ファイル」-「名前付けて保存」を選択
2.保存フォルダを格納用のフォルダに変更(ここでは、C:\Ruby)
3.任意のファイル名を入力(ここでは、「hello_ruby.rb」)なお、必ず末尾の拡張子は「.rb」でなければいけません。
4.文字コードセットは「UTF-8」を選択する
5.「保存」ボタンを押す
ポイントはファイル名の拡張子「.rb」と文字コードセット「UTF-8」です。これが違っていると、うまく動かないことがありますので、注意してください。
なお、フォルダ名やファイル名に全角文字を使うのも、思わぬ不具合の元になりますので、避けた方が無難です。
まとめ
Rubyの基本文法と記述方法について、説明しました。
ここで紹介した内容は非常に基本的なことですが、基本的なこと故にベテランでも忘れてしまって問題発見に時間がかかることがあることでもあります。
いまのうちにしっかりと押さえておくようにしましょう。
・プログラムは上から下に順に処理されていくもの
・プログラムは1度にひとつのことしかできない(だから上から順番にしか処理できない)
・プログラムを見やすくする(可読性を上げる)ことで、不具合が出にくくなる
・「=」や「+」の前後には空白を入れる
・関数に値を渡す場合は()で囲う
・文字列は基本的に””で囲う
・計算式を記述すると、プログラム実行時に、その結果に置き換わる
・プログラムはテキストエディタで入力する
・保存するときのファイル名は任意だが、拡張子は必ず「.rb」にすること
・保存時の文字コードは「UTF-8」にすること