matlab - Matlab 符号的含义:xx@yy
问题描述
我无法理解以下代码片段。简单的调用看起来像这样,没有任何赋值或其他:
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()
而且由于您正在扩展/覆盖函数的超类版本,因此如果子类实现相同,则不能像调用一样调用 - 这就是您已经在其中的函数!因此需要这种不同的符号。
推荐阅读
- javascript - 为javascript中的每个函数获取选中的复选框值
- python - Python - 来自日志文件的正则表达式模式
- javascript - 运行测试用例以使用 Jest 测试功能
- java - Java双重初始化与0
- angular - Angular + Spring boot 集成是否可能?
- c# - 如何检查任何连接和布尔检查之间的实体框架性能差异?
- python - 如何在python的ELIF Block语句中使用IF Block语句的变量?
- mysql - SQL 期待 'with' 命令
- html - 如何通过 shell 脚本从 HTML 数据中获取整行?
- python - 作为熊猫的初学者,我不太了解熊猫数据框中封闭关键字的真正含义是什么?