Jakie są sposoby użycia słowa kluczowego const w Dart?
sobes.tech AI
Odpowiedź od AI
Słowo kluczowe const w Dart służy do tworzenia stałych wartości, które są określane podczas kompilacji i nie mogą być zmieniane podczas działania programu.
Sposoby użycia:
-
Jako modyfikator zmiennej: Używa się go do deklarowania zmiennej, której wartość jest stała podczas kompilacji.
const int speedOfLight = 299792458; // Wartość stała -
Jako modyfikator konstruktora: Konstruktor oznaczony jako
consttworzy niezmiennicze instancje klasy, jeśli wszystkie jej pola są końcowe (final) lub stałe (const).class Point { final double x; final double y; const Point(this.x, this.y); // Konstruktor stały } const origin = Point(0.0, 0.0); // Tworzenie stałej instancji -
Do tworzenia stałych kolekcji: Używa się do tworzenia list, zbiorów i map, których zawartość jest stała podczas kompilacji.
const List<int> primeNumbers = [2, 3, 5, 7, 11]; // Lista stała const Set<String> constants = {'pi', 'e', 'phi'}; // Zbiór stały const Map<String, double> mathConstants = { 'pi': 3.14159, 'e': 2.71828 }; // Mapa stała -
W kontekstach, gdzie oczekiwana jest wartość stała: Na przykład podczas tworzenia widżetów w Flutterze, gdzie widżety stałe mogą być optymalizowane.
// W kontekście Flutter const Text('Hello, World!'); // Stały widżet
Różnice od final:
constokreśla wartość znaną podczas kompilacji.finalokreśla wartość, która jest przypisywana tylko raz podczas działania i nie może być zmieniona później.
| Charakterystyka | const |
final |
|---|---|---|
| Czas inicjalizacji | Podczas kompilacji | Podczas działania (raz) |
| Niezmienność wartości | Niezmienny | Przypisany raz, potem niezmienny |
| Zastosowanie do instancji | Tworzy stałą instancję (jeśli konstruktor jest const) |
Tworzy niezmienną referencję do obiektu |
| Zastosowanie do kolekcji | Tworzy niezmienną kolekcję z niezmienną zawartością | Tworzy niezmienną referencję do kolekcji (zawartość może być zmienna) |