Quais são as formas de usar a palavra-chave const em Dart?
sobes.tech IA
Resposta da IA
A palavra-chave const em Dart é usada para criar valores constantes que são determinados em tempo de compilação e não podem ser alterados durante a execução do programa.
Formas de uso:
-
Como modificador de variável: Usado para declarar uma variável cujo valor é constante em tempo de compilação.
const int speedOfLight = 299792458; // Valor constante -
Como modificador de construtor: Um construtor declarado como
constcria instâncias imutáveis da classe, desde que todos os seus campos sejam finais (final) ou constantes (const).class Point { final double x; final double y; const Point(this.x, this.y); // Construtor constante } const origin = Point(0.0, 0.0); // Criação de uma instância constante -
Para criar coleções constantes: Usado para criar listas, conjuntos e mapas cujo conteúdo é constante em tempo de compilação.
const List<int> primeNumbers = [2, 3, 5, 7, 11]; // Lista constante const Set<String> constants = {'pi', 'e', 'phi'}; // Conjunto constante const Map<String, double> mathConstants = { 'pi': 3.14159, 'e': 2.71828 }; // Mapa constante -
Em contextos onde se espera um valor constante: Por exemplo, ao criar widgets no Flutter, onde widgets constantes podem ser otimizados.
// No contexto do Flutter const Text('Hello, World!'); // Widget constante
Diferenças de final:
constdefine um valor conhecido em tempo de compilação.finaldefine um valor que é atribuído apenas uma vez em tempo de execução e não pode ser alterado após.
| Característica | const |
final |
|---|---|---|
| Tempo de inicialização | Em tempo de compilação | Em tempo de execução (uma vez) |
| Imutabilidade do valor | Inalterável | Atribuído uma vez, depois inalterável |
| Aplicação a instâncias | Cria uma instância constante (se o construtor for const) |
Cria uma referência inalterável a um objeto |
| Aplicação a coleções | Cria uma coleção inalterável com conteúdo inalterável | Cria uma referência inalterável a uma coleção (o conteúdo pode ser mutável) |