函数可以通过使用特殊运算符 @ 获取的函数句柄进行抽象和引用。例如:
f = @plus; f (2, 2) ⇒ 4
这相当于直接调用 plus (2, 2)。除了用于通用编程中的抽象之外,函数句柄还可用于图形(figure)和绘图(graphics)的回调方法中——通过向属性添加监听器或分配预定义的操作,例如以下示例:
function mydeletefcn (h, ~, msg)
printf (msg);
endfunction
sombrero;
set (gcf, "deletefcn", {@mydeletefcn, "Bye!\n"});
close;
以上代码将在关闭(删除)图形时向终端输出 "Bye!"。有许多图形属性操作可以为其分配回调函数,包括
buttondownfcn、
windowscrollwheelfcn、createfcn、deletefcn、
keypressfcn 等。
请注意,@ 字符在定义类函数(即方法)中也起到作用,但并非作为语法元素。相反,它作为目录名的前缀,该目录包含某个类的方法,而这个类的目录名去掉了 @ 字符。参见 面向对象编程。
版权所有 © 2024-2026 Octave中文网
ICP备案/许可证号:黑ICP备2024030411号-4