TOPシステム開発> 第2回:Rubyを動かそう! (1/3)

いまさら聞けないRuby入門

いまさら聞けないRuby入門

第2回:Rubyを動かそう!

著者:伊藤忠テクノソリューションズ  大場 光一郎

公開日:2007/12/3(月)

プログラムを動かそう

第1回:Rubyをはじめてみませんか?」ではRubyの特徴を紹介し、使いはじめるための準備をしました。今回はRubyを実際に動かしならプログラムに親しんでみましょう。第1回で用意したリファレンスマニュアルを参照しながら進めると、より詳細な情報がわかります。

irbコマンド

Rubyにはirbコマンド(Interactive Rubyコマンド)という対話的にプログラムを試せる環境が付属しています。irbは入力したプログラムをすぐに実行でき、結果も即座に確認できるためプログラミングの学習に最適です。

本記事ではirb上でプログラムを動かしながら学んでいきます。Rubyに限らず、すぐに試せる環境を使うことは、楽しくプログラムするコツでもあります。ちょっと気になることはirbを使って納得するまで動かしてみることをお勧めします。

Hello Wolrd.

プログラムの入門では世界に挨拶することからはじめることが定説となっています。伝統的な世界に挨拶するプログラムをRubyで実行してみましょう。まずirbを起動します。コマンドプロンプトを開きirbを入力してEnterキーを押してみてください。「irb(main):001:0>」のような表示されればirbが起動できています。

表示されたところに続けて「puts "Hello World."」と入力しEnterキーを押すと、このプログラムの結果が次の行に表示されるはずです。

「puts」という画面に何かを表示しなさいという命令へ"Hello World."という文字列を与えた結果として、"Hello World."が表示されています。その次の行の「=>」には、入力した式を実行した結果が表示されます。Rubyのほとんどの式は結果として何らかの値を返すのです。「=> nil」は、何も返す値が無いときや明示的に偽(nil)値が返ってきたことを意味します(リスト1)。

実習1

「puts」へ与えている"Hello World."の部分を変えることでさまざまな結果を得ることができますので、他の文字や数値などをいろいろと試してみましょう。

リスト1:Hello World.の確認
 irb(main):001:0> puts "Hello World."
  Hello World.
  => nil

リスト2:Dogクラスの定義
 irb(main):002:0> class Dog
  irb(main):003:1> end
  => nil

リスト3:Dogの確認
 irb(main):002:0> Dog
  => Dog      # 正しく定義できているとDogそのものが結果に表示されます

図1:クラスの概念と今回の例
図1:クラスの概念と今回の例

データとメソッド

プログラムには大きく分けて数値や文字を表示したり蓄積したりするために使う「データ」と、データを加工したり計算したりする「メソッド」があります。先ほどは「puts」を命令と呼びましたが、Rubyではメソッドと呼ぶのが一般的です。プログラムは、このようなメソッドに対してデータを渡して結果を得ることの組み合わせによってできているのです。

クラス

データとそれを扱うメソッドがバラバラに書いてあると、プログラムは読みにくくメンテナンスが難しくなります。

Rubyではデータとメソッドをひとまとめに管理できる「クラス」という仕組みがあります。クラスを使えば似ているデータをまとめたり、そのデータを加工するメソッドをいっしょに合わせて扱えるようになり、プログラムをすっきりと整理できます。

では、irbを使ってクラスを作ってみましょう。実習1によってirb(main):XXXに表示されるカウンタの数値が異なることがありますが気にせず実行してください。今回は先ほどの図のような振る舞いのDogクラスを実装してみます。

リスト2のように入力します。「class Dog」から「end」までがDogクラスの定義でとなります。ちゃんと定義されているかirbで確認することができます。「Dog」と表示されれば正しく定義できています(リスト3)。また、クラスは最初の1文字を大文字にする必要がありますので注意してください。

このクラスを雛形として、データやメソッドを追加していくことができます。 次のページ


1   2  3  次のページ


伊藤忠テクノソリューションズ株式会社 大場 光一郎
著者プロフィール
伊藤忠テクノソリューションズ株式会社  大場 光一郎
社内のRuby推進に従事。個人的にBookScopeの開発に協力する傍ら、オープンソースへの活動としてMeadowプロジェクトに参加したり、JRubyの開発に協力したりしている。最近、Java Expert #02へJRubyの記事を書いた。

Meadow
http://www.meadowy.org/meadow/
BookScope
http://bookscope.net/
暮らしの業
http://ko.meadowy.net/~koichiro/diary/


INDEX
第2回:Rubyを動かそう!
プログラムを動かそう
  name(名前)やage(年齢)のデータを加える
  ブロック