Я использую анонимные функции для печати диагностики при отладке в MATLAB. Например,
debug_disp = @(str) disp(str);
debug_disp('Something is up.')
...
debug_disp = @(str) disp([]);
% diagnostics are now hidden
Используя disp([])
поскольку "бормотание" кажется немного грязным мне; существует ли более оптимальный вариант? Очевидный (?) метод не работает:
debug_disp = @(str) ;
Это, я думаю, могло быть полезно для других функциональных приложений языка, не только диагностической печати.
Я думаю, что disp ([])
или disp ('')
вполне приемлемы. Он ничего не возвращает и не имеет побочных эффектов.
Вот ничего не делать анонимная функция. Он ничего не делает и возвращает пустой массив, который можно просто игнорировать. Вам нужно будет подавить disp, поставив после него точку с запятой.
debug_disp = @(str) [];
disp ([]) тоже должен работать нормально. Какой стиль вы предпочитаете.
Если вы просто ищете Команда "do-nothing" для замены тела анонимной функции, я бы, вероятно, выбрал DRAWNOW :
debug_disp = @(str) drawnow;
Это просто очистит очередь событий и обновит графику вместо отображения текста.