Значение нотации Matlab: xx @ yy - PullRequest
0 голосов
/ 01 октября 2018

У меня проблемы с пониманием следующего фрагмента кода.Простой вызов выглядит следующим образом, без какого-либо присваивания, иначе:

expression1@expression2;

expression2 ссылается на самоопределяемый класс дескриптора.

Я изучил дескрипторы, но не смогвыяснить, что делает данная структура вызова, из обычных примеров @(x) x^2; или f = @sin; и не может найти подобные примеры в Интернете.

Любая помощь в том, что может делать запись, приветствуется.

1 Ответ

0 голосов
/ 01 октября 2018

Без контекста трудно сказать наверняка, но это похоже на подкласс, вызывающий метод суперкласса (обычно перед дополнительной функциональностью в реализации подкласса) ...

См. Документы здесь .

Пример из связанных документов:

classdef Sub < Super
   methods
      function foo(obj)
         % preprocessing steps
          ...
         foo@Super(obj);
         % postprocessing steps
          ...
      end
   end
end

В этом случае функция foo определена в классе Super, реализованном в подклассе Sub, ирасширенный (с предварительной и постобработкой).Запись foo@Super(obj) вызывает метод суперкласса из подкласса.

Обратите внимание, что это аналогично SuperObj.foo(obj), за исключением того, что у вас нет экземпляра объекта (SuperObj) класса Super для созданияэтот звонок.А поскольку вы расширяете / переопределяете версию функции суперкласса, вы не можете просто вызвать obj.foo(), как если бы реализация подкласса была идентична - это функция, в которой вы уже находитесь!Отсюда необходимость этой другой записи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...