復習:引数の扱い方


引数を使うと何がいいとー?

メソッドを使うと、一連の処理がしやすくなるけど、そのままでは、一定の処理しかしてくれない!
そこで、引数を使うとさらに汎用性の高い処理ができるようになるとよ。

汎用性の高い処理で何ね?

じゃぁ、どんな風に汎用性の高い処理ができるんか、例を使って説明するばい。

例) ハンバーガーづくりで考えてみます

チーズバーガーだけじゃ寂しいよ…

じゃ、ハンバーガーづくりで例えてみるばい!

このコードをターミナルで実行すると以下のようになるよね。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
チーズバーガー作るね
チーズをトッピングして…
チーズバーガーの出来上がり!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1行目のburgerがメソッドになっとるけん、8行目のputs burgerに反映されとるよね!
でも、このまんまやったら、チーズバーガーのことしか反映されんけん、さみしくない?
チーズ以外のトッピングもできるようになるのが、引数!

 お望みどおりのバーガーに!!

1行目のメソッド burgerの後に(something)が追加されとるね! この( )が引数!
注目すべきなのは、10行目! ここのburgerの後にも( )があるやろ?これも引数 中身はinputやけども。
実は、この2つの引数( )は関連づけられとるんよ。

10行目の引数はinputよね。 inputは何かというと8行目にあるinputで入力された文字列たい。
やけん、inputで入力された文字列が、1行目の引数somethingに関連づけられるってことたいね。

(※ちなみに元になるのがinputの方の引数なので、inputの方を本引数、somethingの方を仮引数というらしいよ)
(※ちなみに本引数と仮引数は今回みたいに違う名前にしてもいいし、同じ名前でもいいらしいよ!分かりづらくならないようにするといいよね)

んじゃ、例えば、このコードをターミナルで実行して、inputで「アボカド」と入力したとしてみると・・・
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
何バーガーが食べたい?
アボカド #これはターミナルで入力した文字列
アボカドをトッピングして…
アボカドバーガーの出来上がり!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ってなるわけなんよ。
これなら、inputで入力した文字列に合わせて、色んなバーガーを表示させられるし、汎用性が高いよね!

でもでも、引数はまだまだ奥が深い。。。
スコープの範囲とか絡んでくると複雑になると、よく分からんくなるけど、頑張りましょう!