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

tf
true depois 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.

Veja também

isLocked clone feof