Dynamicznie przypisz getter do właściwości zależnej w MATLAB
W Matlab mogę zdefiniować klasę jako taką:
classdef klass < handle
properties(Dependent)
prop
end
end
Matlab jest całkowicie zadowolony z tworzenia instancji obiektu tej klasy, nawet bez definiowania getteraprop
. To się nie udaje, gdy próbuję uzyskać do niego dostęp (zrozumiale). Chciałbym ustawićGetMethod
dynamicznie w oparciu o nazwę nieruchomości.
Niestety, nawet gdy właściwość jest zależna,meta.property
pole dlaGetMethod
jest nadal tylko do odczytu. I podczas dziedziczenia zdynamicprops
mógł pozwolićdodawanie właściwość i programowo ustawiając jej GetMethod w każdym przypadku, nie wierzę, że można jej użyć do zmiany istniejącej właściwości. Może będę musiał iść tą drogą, ale jakprop
musi istnieje dla każdego obiektu, który wolałbym po prostu ustawić gettera dla poszczególnych klas. Czy to możliwe?
Alternatywnym rozwiązaniem może być metoda „catch-all”. W innych językach można to osiągnąć za pomocą podobnego do Rubiegomethod_missing
lub w stylu PHP__get()
. Ale o ile wiem, w Matlabie nie ma analogu (udokumentowanego lub innego).
(Mój przypadek użycia: ta klasa jest dziedziczona przez wiele podklas zdefiniowanych przez użytkownika, a wszystkie ich zależne właściwości są dostępne w podobny sposób, zmieniając się tylko na podstawie nazwy właściwości. Zamiast pytać użytkowników o pisanieget.*
metody owijające wywołanie do wspólnego kodu dla każdej z ich zależnych właściwości, chciałbym ustawić je wszystkie dynamicznie za pomocą wskaźników funkcji anonimowych zawierających niezbędne metadane).