Spec-Zone.ru › Octave 9

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 и т. д.

Обратите внимание, что символ ‘@’ также используется при определении функций класса, то есть методов, но не в качестве синтаксического элемента. Вместо этого он начинает имя каталога, содержащего методы класса, имя которого совпадает с именем каталога без символа ‘@’. См. раздел Объектно-ориентированное программирование.

© 1996–2026 The Octave Project Developers
Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.
Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions.
https://docs.octave.org/v9.4.0/Access-via-Handle.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API