Matlab: как создать свойство, имя которого совпадает с ключевым словом?

В нижней части этой статьи (https://blogs.mathworks.com/loren/2012/07/16/who-what-why-but-not-this/) Лорен говорит, что свойства класса могут быть такими же, как ключевые слова. Однако как это возможно? Если вы пишете сценарий classdef, любая попытка использовать ключевое слово (включая ключевые слова класса, такие как «события») в блоке свойств приводит к синтаксической ошибке красного цвета. Она ошибалась? Я спрашиваю, потому что действительно хочу, чтобы имя свойства было ключевым словом для конкретного приложения.

Я думаю, это связано с умением делать obj.if = 0. Но да, вы не можете добавить if в блок properties.

Cris Luengo 26.10.2018 06:35
1
1
38
1

Ответы 1

Это возможно при использовании динамические свойства, например:

classdef test < dynamicprops
  methods
    function obj = test()
    end
  end
end

var = test();
var.addprop ( 'events' );
var.events = 123;

Это может усложнить поддержку кода и немного переборщить, если вы хотите назвать только одно свойство таким же, как ключевое слово, в этом случае почему бы вам не сделать что-то вроде капитализации имени var или добавления его с чем-то - так что он все еще читается как то, что вы хотите, но это не вызывает конфликта имен:

classdef test
  properties
    Events
    myIf
    % etc...
  end
  methods
    function obj = test()
    end
  end

end

Другие вопросы по теме