引数は敵じゃない!関数を再利用できる味方だ
今回は「引数(ひきすう)とは何か」です。
プログラミングを始めると最初に当たる壁が引数です。そもそも読み方がわからない、書き方がわからない、必要性がわからないのトリプルアタックですね。
引数をマスターすると、プログラミングを効率的に書くことができるようになります。不要な記述を減らして、一つの関数を再利用することが引数の存在意義だといえます。
それでは具体的にみていきましょう!
引数とは何か
引数とは「特定の値を入れるための目印」です。「うわー目をそらしたい・・・」となりそうなので詳しく解説します。
テストを受けるとき、氏名は必ず空欄になっています。誰がどの用紙を使っても、利用できるようにしているからです。
氏名があらかじめ記入されていると、特定の個人しか利用できなくなり不便です。
「タック」と氏名欄に記載されていれば、クラスの中で私しかそのテスト用紙を使えないので不便ですよね。
この氏名の空欄部分をプログラミングに当てはめると引数になるのです。「氏名を書く場所」ということを示しておいて、空欄部分にそれぞれの名前をいれるのです。
それでは、具体的に引数を使うとどれだけ便利になるのかみていきましょう。
引数の有無で便利さを比べる
英語と国語の点数を取得して出力するjavascriptの例を考えます。
引数の値
引数の値は「どんな値が送られるかわかれば何でもOK」です。今回はテストの点数を引数にしているので「score」にしています。クラスメートの名前を渡したければ「name」、漫画のタイトルを渡したければ「title」というように設定します。
引数や関数の名前の付け方には「基本」があります。誰が見てもわかりやすく名付ける力が実務では求められます。
関数名や引数名を見て一瞬で理解できなければ、開発効率が落ちてしまうからです。
名付けは「センスよりルールを知っているか」が大事なので、学習初期にリーダブルコードを読んでおくことを強くおすすめします。
引数がない場合
2つの関数は「テストの点数を取得して表示」しているのは同じです。しかし、引数が取れないため、英語と国語の成績を指定した別々の関数にしなければいけません。同じ処理なのに2つの関数をつくるのは、効率が悪いです。10個のテストがあれば10個の関数が必要になります。
const getTestResultEnglish = () => {
const english = 80;
console.log(english);
}
const getTestResultJapanese = () => {
const japanese = 90;
console.log(japanese);
}
getTestResultEnglish();
getTestResultJapanese();
⇒80
⇒90
引数がある場合
scoreを引数にして関数を実行しています。scoreがenglishの場合には80を、japaneseの場合には90を出力しています。
同じ処理を1つの関数で整理できるため、非常にスッキリしています。テストの数が10個に増えても関数はgetTestResultの1つで済みます。
const getTestResult = (score) => {
console.log(score);
}
const english = 80;
const japanese = 90;
getTestResult(english);
getTestResult(japanese);
⇒80
⇒90
まとめ
最後にまとめましょう。
特定の値を入れるための目印
◯使う理由
同じ関数を複数の場面で使えるようにする
「引数の仕組みがあるから覚えて使ってください」と言われても私はなかなか理解できませんでした。その背景は「なぜ引数が必要なのか」の理解不足だと感じています。
なぜを知ると楽しいしプログラミングの理解が進みます。この記事がプログラミングを学ぶのに役立つと嬉しいです。
コメント