8.2.3 Access via Handle

Last-modified: 2025-03-22 (土) 20:55:30

8.2.3 ハンドル経由のアクセス

関数は、特殊演算子 ' を使用して取得された関数ハンドルを介して抽象化され、参照されることがあります。@'。 例えば、

f = @plus;
f (2, 2)
⇒  4

直接呼び出すのと同じですplus (2, 2)。一般的なプログラミングの抽象化を超えて、関数ハンドルは、次の例のように、プロパティにリスナーを追加したり、既存のアクションを割り当てたりすることで、図やグラフィックスのコールバック メソッドで使用されます。

function mydeletefcn (h, ~, msg)
 printf (msg);
endfunction
sombrero;
set (gcf, "deletefcn", {@mydeletefcn, "Bye!\n"});
close;

上記は、図を閉じる(削除する)"Bye!"と端末に出力されます。コールバック関数を割り当てることができるグラフィックス プロパティ アクションはbuttondownfcn, windowscrollwheelfcn, createfcn, deletefcn, keypressfcnなど、多数 あります 。

'@' 文字はクラス関数、つまりメソッドを定義する際にも役割を果たしますが、構文要素としてではありません。むしろ、' 文字を除いたディレクトリ名を共有するクラスのメソッドを含むディレクトリ名の始まりとなります。@' 文字。オブジェクト指向プログラミングを参照してください。