コールバック関数とは何ですか? 質問する

コールバック関数とは何ですか? 質問する

コールバック関数とは何ですか?

ベストアンサー1

開発者は、コールバックの名前のせいで、コールバックが何であるのかよく混乱します。

コールバック関数は次の関数です。

  • 別の関数からアクセス可能であり、
  • 最初の関数が完了した後に呼び出される

コールバック関数がどのように動作するかを想像する良い方法は、それが渡される関数の「後ろで呼び出される」関数であると考えることです。

おそらく、 「call after」関数という名前の方が適切でしょう。

この構造は、前のイベントが完了するたびにアクティビティを実行する非同期動作に非常に役立ちます。

疑似コード:

// A function which accepts another function as an argument
// (and will automatically invoke that function when it completes - note that there is no explicit call to callbackFunction)
funct printANumber(int number, funct callbackFunction) {
    printout("The number you provided is: " + number);
}

// a function which we will use in a driver function as a callback function
funct printFinishMessage() {
    printout("I have finished printing numbers.");
}

// Driver method
funct event() {
   printANumber(6, printFinishMessage);
}

event() を呼び出した結果:

The number you provided is: 6
I have finished printing numbers.

ここでの出力順序は重要です。コールバック関数は後で呼び出されるため、「数字の印刷が完了しました」は最初ではなく最後に印刷されます。

コールバックは、ポインター言語で使用されるため、このように呼ばれています。ポインター言語を使用しない場合は、「コールバック」という名前にこだわる必要はありません。コールバックは、別のメソッドに引数として提供されるメソッドを説明するための名前に過ぎず、親メソッドが呼び出され (ボタンのクリック、タイマーのティックなど、どのような条件でも)、そのメソッド本体が完了すると、コールバック関数が呼び出されることを理解してください。

一部の言語では、複数のコールバック関数引数がサポートされ、親関数の完了方法に基づいて呼び出される構造をサポートしています (つまり、親関数が正常に完了した場合に 1 つのコールバックが呼び出され、親関数が特定のエラーをスローした場合に別のコールバックが呼び出されるなど)。

おすすめ記事