Sobes.tech
Middle

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:

  1. Kaip kintamojo modifikatorius: Naudojamas deklaruojant kintamąjį, kurio reikšmė yra nekintama kompiliacijos metu.

    const int speedOfLight = 299792458; // Nekintama reikšmė
    
  2. 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
    
  3. 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
    
  4. 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:

  • const nustato reikšmę, žinomą kompiliacijos metu.
  • final nustato 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)