isDone
Testa se um objeto System terminou de produzir dados.
Categoria: Programming > Classes
Sintaxe
tf = isDone(obj)
Retorna true quando um objeto System de fonte não tem mais dados a fornecer.
Descrição
Objetos de fonte entregam seus dados em blocos, uma chamada por vez. O laço padrão lê um bloco e verifica isDone antes de ler o próximo: while ~isDone(src), block = src(); ... end. A verificação é falsa até que o último bloco tenha sido entregue.
Um objeto System que nunca termina, como um gerador de sinal, informa false para sempre, então o laço precisa de outra condição de parada.
Argumentos de entrada
obj- Um objeto System que implementa
isDone, em geral uma fonte de dados como um leitor de arquivo.
Argumentos de saída
tftruedepois que o último bloco foi lido.
Exemplo
O mesmo padrão de laço com um contador simples
data = reshape(1:10, 5, 2);
k = 0;
while k < size(data, 2)
k = k + 1;
block = data(:, k);
fprintf('block %d sums to %d\n', k, sum(block))
end
Saída
block 1 sums to 15
block 2 sums to 40
Observações
Objetos System não estão disponíveis no MatLivre, então isDone não pode ser chamada. O exemplo reproduz o padrão de ler até terminar com um contador.