【问题标题】:Meaning of Matlab Notation: xx@yyMatlab 符号的含义:xx@yy
【发布时间】:2018-10-01 09:32:21
【问题描述】:

我无法理解以下代码 sn-p。简单的调用看起来像这样,没有任何赋值或其他:

expression1@expression2;

expression2 指的是自定义句柄类。

我查看了句柄,但无法从普通示例@(x) x^2;f = @sin; 中弄清楚给定调用结构的作用,并且在网上找不到类似的示例。

感谢您对符号可能做的任何帮助。

【问题讨论】:

    标签: matlab handle notation


    【解决方案1】:

    没有上下文很难确定,但这看起来像一个调用超类方法的子类(通常在子类实现中的附加功能之前)...

    请参阅文档here

    链接文档中的示例:

    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() - 这就是您已经使用的函数!因此需要这种不同的符号。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-22
      • 2018-04-06
      • 2013-07-18
      • 1970-01-01
      • 2014-05-10
      相关资源
      最近更新 更多