【发布时间】:2012-05-13 12:01:34
【问题描述】:
我在路径上的包文件夹+myPack 中有一个类文件myClass.m。类文件的一个简单例子是:
classdef myClass
properties
prop
end
methods
function obj = myClass(x)
obj.prop = x;
end
end
end
现在,如果我直接调用方法并使用完整的包名访问属性,即:
x = myPack.myClass(2).prop;
正确返回x = 2。现在,如果我通过导入此类(而不是使用包名)来尝试相同的操作:
import myPack.myClass
y = myClass(2).prop
它给了我以下错误:
静态方法或构造函数调用不能被索引。 不要跟随对静态方法或构造函数的调用 任何额外的索引或点引用。
为什么这在第一种情况下有效,而在第二种情况下无效?据我了解,importing 一个类主要允许一个人使用类名而不使用长包名(以及其他考虑因素)。这两者有什么区别导致此错误,我该如何解决?
【问题讨论】:
-
有趣。我不知道方法1有效。无论如何,方法 2 是我对 Matlab 所期望的行为,因为您通常不能对结果进行索引。包语法的好特性。