Sobes.tech
Middle

Aké sú spôsoby použitia kľúčového slova const v Dart?

sobes.tech AI

Odpoveď od AI

Kľúčové slovo const v jazyku Dart sa používa na vytváranie konštantných hodnôt, ktoré sú určené počas kompilácie a nemôžu byť počas behu programu zmenené.

Spôsoby použitia:

  1. Ako modifikátor premennej: Používa sa na deklaráciu premennej, ktorej hodnota je konštantná počas kompilácie.

    const int speedOfLight = 299792458; // Konštantná hodnota
    
  2. Ako modifikátor konštruktora: Konštruktor označený ako const vytvára nemeniteľné inštancie triedy, ak sú všetky jej polia finalné (final) alebo konštantné (const).

    class Point {
      final double x;
      final double y;
    
      const Point(this.x, this.y); // Konštantný konštruktor
    }
    
    const origin = Point(0.0, 0.0); // Vytvorenie konštantnej inštancie
    
  3. Na vytváranie konštantných kolekcií: Používa sa na vytváranie zoznamov, množín a máp, ktorých obsah je konštantný počas kompilácie.

    const List<int> primeNumbers = [2, 3, 5, 7, 11]; // Konštantný zoznam
    const Set<String> constants = {'pi', 'e', 'phi'}; // Konštantné množstvo
    const Map<String, double> mathConstants = {
      'pi': 3.14159,
      'e': 2.71828
    }; // Konštantná mapa
    
  4. V kontextoch, kde sa očakáva konštantná hodnota: Napríklad pri vytváraní widgetov vo Flutteri, kde môžu byť konštantné widgety optimalizované.

    // V kontexte Flutter
    const Text('Hello, World!'); // Konštantný widget
    

Rozdiely od final:

  • const určuje hodnotu, ktorá je známa počas kompilácie.
  • final určuje hodnotu, ktorá je priradená iba raz počas behu a nemôže byť zmenená po tom.
Charakteristika const final
Čas inicializácie Čas kompilácie Čas behu (raz)
Zmeniteľnosť hodnoty Nemenná Priradená raz, potom nemenná
Použitie na inštancie Vytvára konštantnú inštanciu (ak je konštruktor const) Vytvára nemennú referenciu na objekt
Použitie na kolekcie Vytvára nemennú kolekciu s nemenným obsahom Vytvára nemennú referenciu na kolekciu (obsah môže byť zmeniteľný)