Matlab表示法的含义:xx @ yy

保罗·潘塔尼(Paolo Pantani)

我在理解以下代码段时遇到了麻烦。简单的调用看起来像这样,没有任何分配,否则:

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),不同之处在于您没有可实例化SuperObj的类Super进行调用。而且,由于要扩展/覆盖该函数的超类版本,因此,obj.foo()如果子类实现相同,则不能像您一样直接调用它-那就是您已经在使用的函数!因此,需要这种不同的表示法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章