Динамически назначить геттер для зависимого свойства в MATLAB
В Matlab я могу определить класс как таковой:
classdef klass < handle
properties(Dependent)
prop
end
end
Matlab совершенно счастлив создать экземпляр объекта этого класса, даже не определяя получатель дляprop
, Это терпит неудачу, только когда я пытаюсь получить к нему доступ (понятно). Я хотел бы установитьGetMethod
динамически на основе имени свойства.
К сожалению, даже когда собственность является зависимой,meta.property
поле дляGetMethod
все еще только для чтения. И при этом наследуя отdynamicprops
мог позволитьдобавление свойство и программная установка его GetMethod в каждом случае, я не верю, что его можно использовать для изменения существующего свойства. Возможно, мне придется пойти по этому пути, но какprop
должен существует для каждого объекта, который я предпочел бы просто установить получатель на основе класса за классом. Это возможно?
Альтернативное решение может быть через какой-то универсальный метод. На других языках это может быть достигнуто через Ruby-подобныйmethod_missing
или PHP-подобный__get()
, Но, насколько я знаю, в Matlab нет (задокументированного или иного) аналога.
(Мой вариант использования: этот класс наследуется многими пользовательскими подклассами, и все их зависимые свойства доступны аналогичным образом, меняются только в зависимости от имени свойства. Вместо того, чтобы просить пользователей написатьget.*
методы, заключающие вызов в общий код для каждого из их зависимых свойств, я хотел бы установить их все динамически с помощью указателей анонимных функций, содержащих необходимые метаданные).