ある暑い夜,僕は完ぺきな女性に関する小説を読んだ。読み終えたとき僕は奇妙な感覚に襲われた。小説で語られるような完ぺきな人なんて,現実にいるのだろうか。
もし居たとしても,そんな人と巡り会えるのかわからない。幸いにして巡り会えても,うまくやれるかどうかわからない。「やぁ,こんにちは!ところで,君は僕にとっての完ぺきなんだ」。僕はそんな場面を想像できない。
大学以来からの友人Kに話したら,笑われるだろう。そして,こういうに違いない。「いつも君が言ってるじゃないか,完ぺきなんて存在しない。だから完ぺきなプログラミング言語も存在しないって」。それは,その通りだ。
さて,この入門連載では,Rubyを網羅的に知るよりも,「取りあえず使えるようになる」ことを目指している。前回は,Rubyで非常に重要な配列やイテレータを説明した。加えて文字列操作を知れば,あなたのRubyの世界はとても広大なものになるだろう。
しかし,単純なプログラムは書けるかもしれないが,少し複雑なものを書くことは大変だ。そこで今回は,メソッドの定義方法を見ていこう。共通的な処理をメソッドとして部品化してやれば,コードはずっとシンプルになる。複雑な処理を記述する第一歩にもなるだろう。
いつも通り友人Kからの依頼があると思っていたら,彼は狙っている女の子を誘って,集団旅行に出ているようだ。なので,今回は友人Kからプログラムの要望はない。
そこでというわけでもないが,友人Kがいない間に,メソッドについて解説したあと,個人的に興味がある“オモロー”(面白い)なツールを作ってしまおう。これは,ちょっとしたことから知り合いになった友人Nとの会話で作ろうと思った,いわゆる「世界のナベアツ・プログラム」だ。
基本的なメソッドの定義方法を知る
メソッドは今の段階では,「実際にプログラムが行う処理をまとめたもの」と考えておこう。リスト1に簡単なメソッドを利用したプログラムを書いてみた。メソッドは,「def」という文字列から「end」までで定義する。
def メソッド名
処理内容
end
def love_me
puts "do!"
end
love_me ------------(1)
リスト1では,love_meというメソッドで,「do!」という文字列を表示する処理を定義している。defとendの間で定義したlove_meというメソッドを(1)で呼び出しているだけだ。この崖の上の雑草のように面白くもないメソッドに,引数を与えてみよう。リスト2のようになる。
def love_me a,b
puts "do!"+a+" :: "+b
end
love_me ("did" ,"done")
リスト2の定義では,二つの引数「a,b」を取るように変更した。崖の上の雑草のようなコードが,崖の上のタンポポのようになっただけで,特に面白さは変わっていない。aという変数に「did」を,bという変数に「done」という文字列を格納し,出力しただけだ。