CALLBACKと言われても、その名前から一体何なのかも想像がつかない。
これはハッキリ言うと、CALLBACKでは無くて、CALLBYNAMEの方がしっくりくると思っている。
どんな時に使うのか、その例を考えてみる。
一般的な場合
コンピュータに命令する場合、まず常識的には人間の言葉が通じないので、
間接的に指示することが一般的になる。
例えばであるが、番号の書いたボタンか何かがあった場合は、
1(話をする)
2(動く)
3(止まる)
という風なものを介在させて、Actionという指示を伝えることになる。
Action(番号)
IF 番号=1 THEN 話をする
IF 番号=2 THEN 動く
IF 番号=3 THEN 止まる
Function 話をする:
Function 動く:
Function 止まる:
コールバイネームの場合
コールバイネームの場合は、指示自体を直接的に実行させるイメージ
ACTION( 命令 )
Function 話をする:
Function 動く:
Function 止まる:
この命令の部分に、直接的に「話をする」、「動く」、「止まる」
などというものが入る。
そもそも関数の名前を、そのまま引数に与えてしまうところが、
このコールバック関数の概念が理解しにくのだと思う。
引数には、関数の名前をそのまま直接入れるのである。