メソッドとは何なのか
Rubyにおけるメソッドの考え方が難しくて、概念を理解するまでに何度もつまづいたので残しておこうと思います。
どういう時にメソッドを生成するのか
⇨何かの値を定義したい時。
それなら、変数でいいのでは?
⇨変数だと、変数に代入された値しか定義できない。
処理結果によって定義される値を変えたい場合にメソッドを使う。
例
・プログラムの使用者に2つの任意の数字を入力させ、その数字を足した結果を画面に表示したい
・いくつかの情報を持つ個体がある(例えば個体が映画であれば、それが持つ情報として考えられるのはタイトル、ジャンル、上映料金など)。プログラムの使用者に、この中からどの情報を知りたいのかを選ばせ、選ばれた情報の結果を表示したい
プログラムをつくるということは、それを使用する相手方が必ず存在する。
相手(使用者)の希望や動作によって、その後のプログラムの進捗が変わるのは、もはや当たり前のことである。
だからプログラミングでは、「こうなった場合にこうしたい」「使用者がこの処理を選択した場合はこの画面を表示させたい」「使用者がこの値を入力した場合はこういう文言を表示させたい」という、プログラムを書く時点でまだ定義しきれない状況が多々発生する。というか、それがほとんどである。
そこでメソッドが登場する。
メソッドを使って、「この場合はこの処理」といった類のことをひとくくりにした箱みたいなものをたくさん作って、その組み合わせでプログラムは動いている。
ただ、箱を置いて置くだけでは何も動作しないので、
箱の中身をきちんと作ったら、
「この箱の中身を起動しますよ」と呼び出す必要がある。
もちろん、箱を呼び出したら、
箱の中身を開けて、何かを取り出すことになる。
取り出した結果は、呼び出した元のところまで届けられる。
これがメソッドにおける、「返り値」という概念。
そもそも何か結果を取り出すために作られたのがメソッドなのだから、
必ず返り値(結果)が存在するはず。
メソッドを定義した中で返り値を渡すのをよく忘れるので、
この記事をもって頭に叩き込みたいと思います。