说我有这样的课程:
classdef exampleClass
properties (Dependent=true)
x
end
methods
function this=exampleClass(this)
this.x = 4;
end
function x=get.x(this)
x=4;
end
end
end
将x
作为classInstance.x
和classInstance.x()
访问有什么区别?
答案 0 :(得分:2)
函数get.x(this)
被称为属性x的getter。它实际上无论属性是否具有Dependent属性都无关,它对于任何类型的属性都是相同的。
如果你为你的属性定义了一个setter / getter,当你执行类似的操作时,Matlab将始终调用函数get.PropertyName或set.PropertyName:
tmp_var = my_instance.x
或
my_instance.x = 3.1416;
因此,如果您的代码中my_instance.x
或my_instance.x()
几乎相同。但是,如果您想遵循最佳实践,则必须避免使用函数调用。
现在,作为额外的一点:出于性能原因,建议您不要使用setter / getters,因为每次修改属性时(即使在课堂内),您都需要支付setter开销的代价/吸气剂。