コールバック関数 【callback function】

概要

コールバック関数(callback function)とは、コンピュータプログラム中で、ある関数を呼び出す際に引数などとして引き渡される別の関数のこと。呼び出し側の用意した関数を、呼び出し先のコードが「呼び出し返す」(callback)ように実行される。

プログラムにおける関数は、別のコードから呼び出して実行することができるコードのまとまりで、呼び出し側は処理してほしいなどを「引数」として渡し、関数実行が終了すると呼び出し側に処理結果が「返り値」として返される。

一般的な関数引数として構造化されたデータ集合(配列など)などを受け付けるが、プログラミング言語によっては関数引数として渡すことができる場合がある。これを利用して、関数内の処理の一部として外部から受け取った関数実行することを「コールバック」、引数として渡す関数を「コールバック関数」という。

コールバック関数の具体的な実装プログラミング言語の仕様により異なり、C言語のように関数へのポインタを渡す方式や、関数オブジェクトクロージャを渡す方式、イベントリスナイベントハンドラなどを登録する方式などがよく用いられる。

用途

コールバックの仕組みは、ライブラリフレームワークなどの汎用的なプログラムでよく利用される。これらが実装している汎用的・抽象的なコードの一部を、開発者が自らが必要とする個別的・具体的な処理で置き換えることができる。

ライブラリなどが提供する機能が開発者の求める仕様に合致しない場合、内部のコードを書き換えるのは困難(提供方法によっては不可能)だが、処理の一部がコールバックとして実装されていれば、開発者は自分が必要とする処理を関数として記述するだけでよく、動作を柔軟に変更することができる。

例えば、あるプログラミング言語標準ライブラリが高速で汎用的な並べ替えソート関数を提供する場合に、二つの要素の比較(のみ)を関数をコールバック関数に指定できるようにしておけば、開発者が独自のデータ構造や複雑な比較処理に基づくソート関数実装することができる。実際、C言語のqsort関数JavaScriptArray.sortメソッドは、比較をうコールバック関数を渡すことができるようになっている。

(2023.3.13更新)

他の辞典による解説 (外部サイト)

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。
ホーム画面への追加方法
1.ブラウザの 共有ボタンのアイコン 共有ボタンをタップ
2.メニューの「ホーム画面に追加」をタップ
閉じる