Rubyの特徴
プログラミング言語としてのRubyを百科事典的に一言で表すならば「オブジェクト指向のスクリプト言語」となります。自他ともに認める言語マニアであるMatz氏は新旧いろいろな言語から良いところを取り込み、それらをバランス良く練り上げ、統合しています。
本記事ではRubyの仕様について詳細に説明することはしませんが、知っておくと良いRubyの特徴を以下にいくつか挙げ、簡単な説明を加えて行きます。
- 変数の宣言不用・型がない
- すべてはオブジェクト
- クラスと継承
- ブロックとイテレータ
今回の記事ではなんとなくコード例を眺めて、Rubyの雰囲気と魅力を感じてもらえれば幸いです。
変数の宣言不用・型がない
Rubyでは、変数を使う前に宣言は必要ありません。たとえば以下の例のように、
=
の左に変数名、右に代入する値を書けばその行が実行された時点で変数が定義されます。
また、変数にどんな型の値を入れてもエラーにはなりません。
これはコードに柔軟性を与える一方、変数にどんな値が入っているのか実行するまでわからないため、プログラマは誤解を与えないわかりやすいコードを書くように気をつける必要があります (たとえば、strという名前の変数に数値が入っていると混乱を引き起こしますよね)。
すべてはオブジェクト
Rubyは徹底したオブジェクト指向で設計されており、すべてのものが「オブジェクト」で、何らかのクラスのインスタンスとして存在しています。
クラスからインスタンスを作成する方法は次節「クラスと継承」で説明します。
メソッドを呼び出すには、呼び出し元(レシーバ)のオブジェクトにドットでメソッド名を繋げます。つまりabc.hoge
と書いた場合、これは「abcオブジェクトの持つhogeメソッドを実行している」ということを表します。 メソッド呼び出しに引数を渡す時は引数を()
カッコの中に入れます。このカッコは省略可能であり、[1,2,3].push(4)
は[1,2,3].push 4
とも書けます。
あるオブジェクトがどのクラスのインスタンスかを調べる「class
」というメソッドを使って、いくつかのオブジェクトのクラスを調べてみましょう。
上の例でわかるように、Javaではプリミティブ型になっている真偽値やnull(Rubyではnilがこれにあたります)も、Rubyではクラスのインスタンスです。
ちなみに「methods」メソッドを使えば、そのオブジェクトの持つメソッド一覧を調べることが出来ます。
いろいろなオブジェクトのクラスを調べたりメソッド一覧を眺めると、勉強になるのでオススメです。
次のページでは、Rubyにおけるクラスの扱いを紹介していきます。