“的使用;这";在每个MATLAB类中

“的使用;这";在每个MATLAB类中,matlab,Matlab,为什么在MATLAB的每节课上我都要用“this”?在C++中,我不需要使用“这个”,只要我想。在MATLAB中也是这样吗?简而言之,您必须使用某种明确的引用。 首先,与C++/C#/Java中的名称不同,您可以使用任何您想要的名称。 必须使用显式调用的原因是。 其思想是支持对象上的Matlab向量运算,就好像它们是 结构。以下是上面链接中的一个片段: 而带有隐式对象参数的语言提供了一个“this”关键字 要访问隐式对象,它们通常不需要您访问 通过“这个”来获得财产。如果MATLAB具有隐式属性

为什么在MATLAB的每节课上我都要用“this”?在C++中,我不需要使用“这个”,只要我想。在MATLAB中也是这样吗?

简而言之,您必须使用某种明确的引用。

首先,与C++/C#/Java中的名称不同,您可以使用任何您想要的名称。 必须使用显式调用的原因是。 其思想是支持对象上的Matlab向量运算,就好像它们是 结构。以下是上面链接中的一个片段:

而带有隐式对象参数的语言提供了一个“this”关键字 要访问隐式对象,它们通常不需要您访问 通过“这个”来获得财产。如果MATLAB具有隐式属性,则逻辑 对基于数组的对象的扩展是无索引:
S=S+(k).值

编辑:
在@AndrewJanke的评论之后,我想补充一点,MATLAB可以将其作为隐式引用,并且只强制在基于数组的对象的索引中使用它。尽管如此,MATLAB设计者并没有选择这种方法。

Python类方法不需要命名显式实例引用
self
。这也是一种惯例,就像在MATLAB中一样。我认为这篇阅读忽略了核心原因:多重分派,在链接文章中被间接地称为“多个对象参数之间的对称性”。例如,对于方法
f(a,B,C)
,任何输入都可能是方法分派对象,或者它们在概念上可能是对等对象,因此不清楚哪个应该成为
this
。它甚至可以被称为
f(2,3,X)
。索引的关联可以通过隐式<代码>这个参数来解决,并且只需要在使用方法> >代码> >索引时使用它,如C++调用超负荷<代码> []/COD>。(我想。)@AndrewJanke,那么基本上你是说主要的问题是语法foo(obj)而不是obj.foo()?一个有趣的想法。顺便说一下,我同意可以通过使用隐式参数并仅在索引时使用它来解决这个问题。是的,
foo(obj)
语法及其支持的功能。例如,它允许您使用
plus()
以交换方式定义
+
行为,或者定义可以用作现有函数参数的插入式替换的类。