mlock
Trava a função em execução na memória para que clear não a reinicie.
Categoria: Programming > Functions
Sintaxe
mlock
Chamada dentro de um arquivo de função, trava essa função.
Descrição
Variáveis persistentes normalmente desaparecem quando a função é limpa com clear ou clear all. Uma função travada fica na memória, então suas variáveis persistentes sobrevivem até munlock ser chamada ou a sessão terminar. mlock só vale dentro de um arquivo de função; chame uma vez, em geral no início.
Use para estado que precisa durar além de um clear, como um contador de chamadas ou um cache.
Exemplo
Estado que sobrevive ao clear
writelines(["function r = counter()", " mlock;", " persistent n", " if isempty(n), n = 0; end", " n = n + 1; r = n;", "end"], 'counter.m');
counter;
counter;
clear counter
counter
Saída
ans = 3
Observações
No MatLivre, mlock registra a trava, então mislocked informa true, mas clear nunca zera as variáveis persistentes de nenhuma função, travada ou não.