我在理解以下代码片段时遇到问题。简单的调用如下所示,没有任何赋值或:
expression1@expression2;
expression2
指的是自定义句柄类。
我已经研究了句柄,但无法从正常示例中@(x) x^2;
或f = @sin;
中弄清楚给定的调用结构的作用,并且无法在线找到类似的示例。
任何关于符号可能做什么的帮助将不胜感激。
没有上下文很难确定,但这看起来像一个调用超类方法的子类(通常在子类实现中的附加功能之前(......
请参阅此处的文档。
链接文档中的示例:
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)
,只是你没有类Super
的实例化对象(SuperObj
(来进行这个调用。而且由于您正在扩展/覆盖函数的超类版本,因此您不能像子类实现相同时那样调用obj.foo()
- 这就是您已经使用的函数!因此需要这种不同的符号。