Rubyの基本的な文法・用法を理解したのちは、
アルゴリズムの組み立て方に習熟する
ライブラリの存在と利用方法を覚える
という段階に進む。プログラム作成時に利用する、既に完成している ある程度機能が揃ったメソッド(関数)の集合体をライブラリ という。 Rubyでは標準セットの中に多くのライブラリが入っている。プログラムで 何の前準備もなく使えるものを組み込みライブラリといい、 Hash(ハッシュ)やArray(配列)、String(文字列)もそれらの1つである。
Ruby
リファレンスマニュアル
http://doc.ruby-lang.org/ja/2.0.0/doc/index.html
は、Rubyのすべての仕様が記述されているページで、プログラミングを
行なうときにはつねに開いておくべきページである。
HashやArrayはとくに重要なクラスで、付属しているメソッドを しっかり把握して挙動を確かめておきたい。これらは、上記Webページの 「組み込みライブラリ 」の一覧に含まれている。このマニュアルを見て各種クラスで 使えるメソッドなどを理解して使用する方法を覚えていく。
たとえば Arrayクラス の説明ページを見よう。クラスの説明ページには
の項目がある。
スーパークラスはそのクラスの親となるクラスで、 親クラスに備わっている性質はすべて子となるクラスも持つことになる。 したがって、そのクラスで使えるメソッドのすべてを知るにはスーパークラスの メソッドも調べる必要がある。
クラスメソッドはインスタンスを作ることなく使えるメソッドである。
いっぽうクラスメソッドでないメソッドは生成したインスタンスからのみ
使える。たとえば、Arrayクラスのクラスメソッド new
は、
新しい Array オブジェクトを生成するためのもので、これはクラス名
直属で使う。
例:
x = Array.new(5)
この例では新しいオブジェクトが変数 x
に代入された。
x
に代入されているArrayクラスの具体的実体のことを
インスタンス という。
一般メソッドはインスタンスそのものに対して働く。
Arrayクラスの例でいえば、push
メソッドは
そのインスタンス(Arrayの場合配列値)に別の要素を追加する。
x.push("Hello")
メソッドの見出しは次のようになっている。
Array.new([size[, val]])
大括弧 [ ]
はその中味が省略可能であることを意味する。
また、書体の変わっている size
val は実際には様々な
値が来る変動値であることを意味する。したがって、上記の1行は
Array.new() Array.new(5) Array.new(i, 4)
いずれも該当する。