関数(Function)

PR
PR

関数(Function)とは、特定の処理をひとまとまりにして、名前を付けて呼び出せるようにしたもののことです。同じ処理を何度も書く代わりに、一度定義した関数を必要な場所で呼び出すことで、プログラムを整理して書けます。

現実世界に例えると、関数は自動販売機のようなものです。お金を入れてボタンを押すという決まった操作をすれば、中の仕組みを知らなくても、いつも同じように商品が出てきます。

処理をひとまとめにする理由

関数が使われる根本的な理由は繰り返しの排除にあります。同じ計算や処理をプログラムのあちこちに書いていると、修正が必要になったときにすべての箇所を直さなければなりません。処理を関数として一箇所にまとめておけば、直すのはその関数だけで済みます。

定義と呼び出し

関数の利用は二つの段階に分かれます。「どんな処理をするか」を決める定義と、その処理を実際に実行させる呼び出しです。定義は一度だけ書けばよく、呼び出しは必要な回数だけ、プログラムの好きな場所から行えます。

入力と出力の考え方

多くの関数は、値を受け取って値を返す形で作られます。関数に渡す値を引数、関数が処理を終えて返す値を戻り値と呼び、この二つを通じて関数と呼び出し元がやり取りします。関数の中身を知らなくても、何を渡せば何が返るかさえ分かれば使える、という利点はここから生まれます。

要素 役割
関数名 関数を呼び出すときに使う名前
引数 関数に渡す値
戻り値 関数が処理を終えて返す値

組み込み関数と自作関数

関数には二つの出どころがあります。プログラミング言語やライブラリがあらかじめ用意している組み込み関数と、プログラマ自身が目的に合わせて作る自作関数です。文字数を数える、平方根を求めるといった一般的な処理は組み込み関数で済み、業務固有の処理は自作関数として作ることになります。

再利用性という価値

関数の効果は同じプログラムの中だけにとどまりません。よく使う処理を関数としてまとめておけば、別のプログラムを作るときにもそのまま持ち込んで使い回せます。多くのプログラマが便利な関数を集めたライブラリを公開しているのも、この再利用性が理由です。

スコープという境界

関数には内部と外部を分ける役割もあります。関数の中で使う変数は、原則としてその関数の中だけで有効で、外側のプログラムからは直接触れません。この範囲をスコープと呼び、関数同士が互いの内部変数を誤って書き換えてしまう事故を防ぐ仕組みになっています。

関数を分ける設計の考え方

実務では、関数をどう分けるかが設計の質を左右します。一つの関数に多くの役割を詰め込みすぎると、動作の把握や修正が難しくなるため、一つの関数には一つの役割だけを持たせるのが基本とされています。適切な単位に分けられた関数は、読みやすさとテストのしやすさの両方につながります。

関数型プログラミングとの関わり

近年は関数の考え方そのものを重視する設計も注目されています。関数を値として変数に代入したり、別の関数に渡したりする関数型プログラミングの考え方が、多くの現代言語に取り入れられています。処理の副作用を避け、同じ入力には常に同じ出力を返す関数を積み重ねることで、不具合の起きにくいプログラムを目指す発想です。

あわせて知っておきたい用語

  • 引数:
    関数を呼び出すときに渡す値のことです。
  • 戻り値:
    関数が処理を終えたときに返す値のことです。
  • スコープ:
    変数や関数が有効な範囲のことです。
  • ライブラリ:
    よく使う関数や機能をまとめたもののことです。

コメント

タイトルとURLをコピーしました