Matlab 符号的含义:xx@yy
Meaning of Matlab Notation: xx@yy
我无法理解以下代码片段。简单的调用看起来像这样,没有任何赋值或其他:
expression1@expression2;
expression2
指的是自定义句柄class.
我查看了句柄,但无法从正常示例 @(x) x^2;
或 f = @sin;
中弄清楚给定的调用结构的作用,并且无法在网上找到类似的示例。
任何关于符号可能做什么的帮助都将不胜感激。
在没有上下文的情况下很难确定,但这看起来像是 subclass 调用 superclass 方法(通常在 subclass 实现中的附加功能之前)。 ..
查看文档 here。
来自链接文档的示例:
classdef Sub < Super
methods
function foo(obj)
% preprocessing steps
...
foo@Super(obj);
% postprocessing steps
...
end
end
end
在这种情况下,foo
函数在Super
class中定义,在子classSub
中实现,并扩展(用预处理和后处理)。 foo@Super(obj)
表示法从 subclass.
调用 superclass 方法
请注意,这类似于 SuperObj.foo(obj)
,只是您没有 class Super
的实例化对象 (SuperObj
) 来进行此调用。而且由于您正在扩展/覆盖该函数的 superclass 版本,因此您不能像 subclass 实现相同时那样调用 obj.foo()
- 这就是您的功能已经进来了!因此需要这种不同的表示法。
我无法理解以下代码片段。简单的调用看起来像这样,没有任何赋值或其他:
expression1@expression2;
expression2
指的是自定义句柄class.
我查看了句柄,但无法从正常示例 @(x) x^2;
或 f = @sin;
中弄清楚给定的调用结构的作用,并且无法在网上找到类似的示例。
任何关于符号可能做什么的帮助都将不胜感激。
在没有上下文的情况下很难确定,但这看起来像是 subclass 调用 superclass 方法(通常在 subclass 实现中的附加功能之前)。 ..
查看文档 here。
来自链接文档的示例:
classdef Sub < Super
methods
function foo(obj)
% preprocessing steps
...
foo@Super(obj);
% postprocessing steps
...
end
end
end
在这种情况下,foo
函数在Super
class中定义,在子classSub
中实现,并扩展(用预处理和后处理)。 foo@Super(obj)
表示法从 subclass.
请注意,这类似于 SuperObj.foo(obj)
,只是您没有 class Super
的实例化对象 (SuperObj
) 来进行此调用。而且由于您正在扩展/覆盖该函数的 superclass 版本,因此您不能像 subclass 实现相同时那样调用 obj.foo()
- 这就是您的功能已经进来了!因此需要这种不同的表示法。