Info

La pregunta está cerrada. Vuélvala a abrir para editarla o responderla.

value classes - do you use them? I must be doing something wrong...

1 visualización (últimos 30 días)
Eric Sampson
Eric Sampson el 18 de Mayo de 2013
Cerrada: MATLAB Answer Bot el 20 de Ag. de 2021
So I can't really recall ever creating a value class, all mine seem to be handle classes. Is that the same as your experience? Unless I'm completely missing something, using value classes seems to be painful, because you always have to do two steps like this:
foo = MyValueClass(5); % sets a property 'val'
foo = foo.double();
plot(foo.val);
With a handle class, I'd just do this:
foo = MyHandleClass(5);
plot(foo.double()); % double returns the new obj.val directly.
Am I completely out to lunch with this understanding of value classes?
As an aside, sometimes it seems like it would be nice to have the above syntax of a handle class, but be able to make independent copies of a given object like a value class... Anyone else think so?
Thanks for your thoughts, Eric

Respuestas (1)

Andrew Newell
Andrew Newell el 6 de Jun. de 2013
I have no idea what your method double does or what your class constructor does with the input, so I'll create a trivial example where you could do your plot in two commands:
classdef MyValueClass
properties
val
end
methods
function obj = MyValueClass(val)
obj.val = val;
end
end
end
Now for an example of its use:
foo = MyValueClass(0:1);
plot(foo.val)
See Comparing Handle and Value Classes. For much of the work I do, value classes are preferable.

Productos

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by