Ferramentas

Kodebits Dia 72: Inicialização Atrasada de Variáveis | Kodeco

O texto explora o conceito de variáveis 'late' no Dart, demonstrando que a inicialização é postergada até a primeira leitura da variável. No exemplo fornecido, a função getValue() é chamada apenas quando msg é acessada pela primeira vez, não quando declarada, resultando em uma saída inesperada para quem não compreende completamente o comportamento de lazy evaluation.

Compartilhar
Kodebits Day 72: Late Variable Init | Kodeco

O que isso imprime?

int count = 0;
void main() {
  late String msg = getValue();
  print(count);
  print(msg);
  print(count);
}
String getValue() {
  count++;
  return "Olá";
}

Experimente no Dart Playground online →

[spoiler title="Solução"]

Resposta:

0
Olá
1

Explicação:

Variáveis late com inicializadores usam avaliação preguiçosa – getValue() é executada apenas quando msg é acessada pela primeira vez, não quando declarada.

[/spoiler]


Leitura Adicional

Fonte original

Conteúdo traduzido e adaptado pela redação do Notícias Mobile. Confira também a matéria na fonte original.

Leia a matéria completa