假设我有以下类来计算二次方程的解:
classdef MyClass < handle
properties
a
b
c
end
properties (Dependent = true)
x
end
methods
function x = get.x(obj)
discriminant = sqrt(obj.b^2 - 4*obj.a*obj.c);
x(1) = (-obj.b + discriminant)/(2*obj.a);
x(2) = (-obj.b - discriminant)/(2*obj.a);
end
end
end
现在假设我运行以下命令:
>>quadcalc = MyClass;
>>quadcalc.a = 1;
>>quadcalc.b = 4;
>>quadcalc.c = 4;
在此刻,quadcalc.x = [-2 -2]
。假设我打电话quadcalc.x
多次而不调整其他属性,即quadcalc.x = [-2 -2]
每次我要求这个财产。是quadcalc.x
重新计算每次,还是只是“记住”[-2 -2]?
Yes, x
每次都会重新计算。这就是拥有依赖属性的要点,因为它保证了结果x
始终是最新的。
如果你想做x
“惰性依赖属性”,您可能需要查看我的回答中的建议这个问题 https://stackoverflow.com/questions/4961331/matlab-lazy-evaluation-in-dependent-property/4961387#4961387.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)