目次に戻る | 前のページへ |
さて,Rubyは「オブジェクト指向スクリプト言語」なのですが,今日の講座では その「オブジェクト指向」の部分はまったく触れていません.ご存じの方もおら れるかも知れませんが,
次に示すスクリプト を利用して文字列オブジェクトにいくつかのメソッドを作用させてみましょう.
str = "abcdefghijklmn" p str.size #文字列の文字数 p str.split(//) #文字列の配列化 p str.chop #最後の一文字削除 p str.delete("b") #bの文字削除 p str.reverse #文字列の並べ替え(逆順) p str.size p str.chop.size p str.chop.split(//) p str.delete("b").reverse |
変数 str というオブジェクトにいくつかのメソッドを作用させていま すが,その際に,オブジェクトにピリオドを介してメソッドを作用させます.そ の結果の状態もオブジェクトですので,それに対してさらにピリオドでメソッド を作用させることが可能です.メソッドは対応するものであれば,いくつでも繋 げることが出来ます.
オブジェクトは自分自身を理解しているので,メソッドをオブジェクトに作用さ せると,そのオブジェクトに対して有効な手段を自動的に使い分けます.上で利 用したメソッド size を例に取って 次のスクリプトで試してみましょう.
str = "abcdefghijklmn" ary = [1, 2, 3] val = 100 p str.size p ary.size p val.size |
size という同じメソッドが作用するものによって違う動作をします. 文字列に対しては文字数を表示 (これを「返す」と言います.) します が,配列に対しては「要素の個数」を返します.さらに,数値に対して はその数値が計算機の内部で使用している「バイト数」を返します.こ のようにオブジェクトの持っている性質 (属性) に従ってメソッドの作 用が変わることもオブジェクト指向言語の特徴です.
なかなか詳しく紹介できなかったwhile 文の活用ですが, 次のようなスクリプト で確認してみて下さい.
array = Array.new(10,0) while array.shift puts "要素があります" end |
shift メソッドは配列の先頭の要素を取り出します.要素が取り出さ れると配列に含まれる要素の個数が減って行き,最後に無くなります.そのと きに,条件式が偽になるのでループが終わります.
最後の最後に,実際に使えるかどうかは分かりませんが,今までやったことの組 合せでできるそれなりに実用的なスクリプトを紹介します.ものはためしで, 中身を見て動かして下さい.
ターミナルからの操作を前提としていますので,S@pphireは使えません.のアイコンがパネルにありますので, クリックして起動して下さい.そこで次のコマンドを実行して作業します.
$ cd ~/ruby2004
$ cp /virtual/home/tmp/calc.rb .
$ ruby calc.rb
操作方法は,ターミナルにキーボードから次のような規則で入力して計算を行い ます.
123 + 234
最初に数字,次にスペースを空けて演算記号(+ - * / %),そして再び スペースを空けて数字です.中央の記号の部分に q (小文字のq)を入 力すると終了します.
時間(分)をセットすると逆算して残り時間を教えてくれます.使い方は,先ほど と同様に
$ ruby timer.rb 1
のようにして,時間を数字でセットします.
目次に戻る | 前のページへ |