onCleanup
Cria um objeto que executa uma função quando é limpo ou sai de escopo.
Categoria: Programming > Functions
Sintaxe
c = onCleanup(task)
Retorna um objeto de limpeza que chama o function handle task sem argumentos quando c é destruído.
Descrição
Uma variável local é destruída quando a função retorna, normalmente ou por erro. Guardar um objeto onCleanup em uma variável assim garante que a tarefa seja executada em qualquer caminho de saída. É a forma padrão de fechar arquivos, restaurar configurações ou apagar dados temporários sem repetir a limpeza em vários lugares.
A tarefa também é executada se a variável for sobrescrita ou removida com clear.
Argumentos de entrada
task- Function handle sem entradas, por exemplo
@() fclose(fid).
Argumentos de saída
c- Um objeto
onCleanup. Guarde-o em uma variável; descartá-lo executa a tarefa imediatamente.
Exemplo
Limpeza ao sair da função e com clear
function work()
c = onCleanup(@() fprintf('leaving\n'));
fprintf('working\n');
end
work();
x = onCleanup(@() disp('cleared'));
clear x
disp('done')
Saída
working
leaving
cleared
done