В MATLAB кажется, что вы можете вкладывать анонимные функции следующим образом:
>> x = @() @() 1
x =
function_handle with value:
@()@()1
Однако я сталкиваюсь с проблемами, когда делаю это в значениях по умолчанию для свойств класса. Например, если я определяю класс
classdef MyClass
properties
Property1 = @() @() 1
end
end
и создаю экземпляр, я получаю ошибку.
>> MyClass
Invalid default value for property 'Property1' in class 'MyClass':
Error: Invalid use of operator.
Что с этим? Есть ли способ сделать это правильно?
(MATLAB R2019b)
Редактировать: Вот интересный обходной путь, который не вызывает ошибок:
classdef MyClass
properties
Property1 = someLocalFcn
end
end
function out = someLocalFcn
out = @() @() 1;
end