Logo Passei Direto
Buscar

É muito comum que aplicativos mobile necessitem ler valores de recursos externos para realizar suas tarefas. Entretanto, o aplicativo não pode ficar bloqueado, aguardando a leitura desses valores. Por isso, a programação assíncrona em Flutter/Dart exerce um papel fundamental nessa questão.

A classe Stream pode ser usada para retornar uma sequência de eventos (resultados) que precisam ser processados assincronamente em um aplicativo Flutter.

Qual das alternativas a seguir mostra um código em Dart para gerar uma Stream de valores inteiros de 0 até N?

Selecione a resposta:

  • a
  • Stream numerosAsync(int n) async* { int k = 0; while (k < n) yield k++; }
  • b
  • int numerosAsync(int n) async* { int k = 0; while (k < n) yield k++; }
  • c
  • Stream numerosAsync(int n) async* { int k = 0; while (k < n) return k; }
  • d
  • Stream numerosAsync(int n) async* { int k = 0; while (k < n) return k++; }
  • e
  • Stream numerosAsync(int n) async* { yield n++; }


User badge image
DONIZETI SANTANA FERREIRA

semana passada

Respostas

User badge image

Ed Verified user icon

semana passada

Para gerar uma `Stream` de valores inteiros de 0 até N em Dart, precisamos usar a palavra-chave `yield` dentro de uma função assíncrona que retorna um `Stream`. Vamos analisar as alternativas: a) `Stream numerosAsync(int n) async* { int k = 0; while (k < n) yield k++; }` - Esta opção está correta. Ela cria uma `Stream` e usa `yield` para retornar os valores de `k` de 0 até N. b) `int numerosAsync(int n) async* { int k = 0; while (k < n) yield k++; }` - Esta opção está incorreta porque a função deveria retornar um `Stream`, mas está retornando um `int`. c) `Stream numerosAsync(int n) async* { int k = 0; while (k < n) return k; }` - Esta opção está incorreta porque `return` não é usado para gerar múltiplos valores em uma `Stream`. Deveria ser `yield`. d) `Stream numerosAsync(int n) async* { int k = 0; while (k < n) return k++; }` - Esta opção está incorreta pelo mesmo motivo da opção anterior. `return` não gera uma sequência de valores. e) `Stream numerosAsync(int n) async* { yield n++; }` - Esta opção está incorreta porque ela apenas gera o valor de `n` uma vez e não gera a sequência de 0 até N. Portanto, a alternativa correta é: a) `Stream numerosAsync(int n) async* { int k = 0; while (k < n) yield k++; }`

Essa resposta te ajudou?

0
Dislike0

Ainda com dúvidas?

Envie uma pergunta e tenha sua dúvida de estudo respondida!

Mais conteúdos dessa disciplina