MATLAB Answers

Loren says class properties can be the same as keywords but how?

1 view (last 30 days)
Giles
Giles on 26 Oct 2018
Answered: Giles on 26 Oct 2018
In this article https://blogs.mathworks.com/loren/2012/07/16/who-what-why-but-not-this/ near the bottom Loren says that class properties can be the same as keywords. However, how is this possible? If you write a classdef script any attempt to use a keyword (including class keywords like "events") in the properties block gets a red syntax error. Was she mistaken? I'm asking because I really want a property name that happens to be a keyword for a particular application.

Answers (2)

Philip Borghesani
Philip Borghesani on 26 Oct 2018
Yes they can be but only sometimes. I believe at one point we considered loosening this up a bit more but there were other issues.
A structure field or property name can be a reserved word or even sometimes an invalid property name if created externally (java,com or .net) or using mystruct.('propname'), syntax. For a class property this class has two properties. Note that reserved names can be used if not declared in the properties block:
classdef tstclass <dynamicprops
properties
prop1
end
methods
function obj=tstclass
addprop(obj,'global')
end
end
end
try :
tc=tstclass
tc.global=4
tc.addprop('propertiess')
tc.properties=5

Giles
Giles on 26 Oct 2018
Thanks. However, using dynamic properties would only add the property to a given instance of the class, not to the class a whole, correct?
If it's only parsing the classdef script that's the issue and nothing else, you might consider amending the parser so that it can understand a keyword property name in the properties block? (In my case I really could use a property called "events"--turns out there aren't a lot of good synonyms for that word in the English language!)

Tags

Products


Release

R2018b

Community Treasure Hunt

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

Start Hunting!