Info

Diese Frage ist geschlossen. Öffnen Sie sie erneut, um sie zu bearbeiten oder zu beantworten.

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

1 Ansicht (letzte 30 Tage)
Eric Sampson
Eric Sampson am 18 Mai 2013
Geschlossen: MATLAB Answer Bot am 20 Aug. 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

Antworten (1)

Andrew Newell
Andrew Newell am 6 Jun. 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.

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by