Kokie yra būdai naudoti raktažodį const Dart?
sobes.tech AI
Atsakymas iš AI
„const“ raktas Dart kalboje naudojamas kuriant nekintamas reikšmes, kurios nustatomos kompiliacijos metu ir negali būti keičiamas vykdant programą.
Naudojimo būdai:
-
Kaip kintamojo modifikatorius: Naudojamas deklaruojant kintamąjį, kurio reikšmė yra nekintama kompiliacijos metu.
const int speedOfLight = 299792458; // Nekintama reikšmė -
Kaip konstruktoriaus modifikatorius:
constžymėtas konstruktorius sukuria nekintamas klasės kopijas, jei visi jo laukai yra galutiniai (final) arba nekintami (const).class Point { final double x; final double y; const Point(this.x, this.y); // Nekintamas konstruktorius } const origin = Point(0.0, 0.0); // Nekintamas egzempliorius -
Kuriant nekintamas kolekcijas: Naudojama kuriant sąrašus, rinkinius ir žemėlapius, kurių turinys yra nekintamas kompiliacijos metu.
const List<int> primeNumbers = [2, 3, 5, 7, 11]; // Nekintamas sąrašas const Set<String> constants = {'pi', 'e', 'phi'}; // Nekintamas rinkinys const Map<String, double> mathConstants = { 'pi': 3.14159, 'e': 2.71828 }; // Nekintamas žemėlapis -
Kontekstuose, kur tikimasi nekintamos reikšmės: Pavyzdžiui, kuriant Flutter widgetus, kur nekintami widgetai gali būti optimizuoti.
// Flutter kontekste const Text('Hello, World!'); // Nekintamas widgetas
Skirtumai nuo final:
constnustato reikšmę, žinomą kompiliacijos metu.finalnustato reikšmę, kuri priskiriama tik vieną kartą vykdymo metu ir po to nebegali būti keičiama.
| Savybės | const |
final |
|---|---|---|
| Inicijavimo laikas | Kompiliacijos laikas | Vykdymo laikas (vieną kartą) |
| Keičiamumas reikšmės | Nekintama | Priskiriama vieną kartą, tada nekintama |
| Taikymas egzemplioriams | Kuria nekintamą egzempliorių (jei konstruktorius const) |
Kuria nekintamą nuorodą į objektą |
| Taikymas kolekcijoms | Kuria nekintamą kolekciją su nekintamu turiniu | Kuria nekintamą nuorodą į kolekciją (turinys gali būti keičiamas) |