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

1 visualizzazione (ultimi 30 giorni)
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.

Risposte (2)

Philip Borghesani
Philip Borghesani il 26 Ott 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 il 26 Ott 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!)

Categorie

Scopri di più su Construct and Work with Object Arrays in Help Center e File Exchange

Tag

Prodotti


Release

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by