Sobes.tech
Middle

Milyen módon használható a const kulcsszó Dartban?

sobes.tech MI

Válasz az MI-től

A const kulcsszó a Dartban olyan állandó értékek létrehozására szolgál, amelyek a fordítási időben kerülnek meghatározásra, és a program futása során nem változtathatók meg.

Használati módok:

  1. Változó módosítóként: Olyan változó deklarálására használják, amelynek értéke fordítási időben állandó.

    const int speedOfLight = 299792458; // Állandó érték
    
  2. Konstruktor módosítóként: Egy const-ként deklarált konstruktor nem változtatható példányokat hoz létre az osztályból, ha minden mezője végleges (final) vagy állandó (const).

    class Point {
      final double x;
      final double y;
    
      const Point(this.x, this.y); // Állandó konstruktor
    }
    
    const origin = Point(0.0, 0.0); // Állandó példány létrehozása
    
  3. Állandó kollekciók létrehozására: Listák, halmazok és térképek létrehozására, amelyek tartalma fordítási időben állandó.

    const List<int> primeNumbers = [2, 3, 5, 7, 11]; // Állandó lista
    const Set<String> constants = {'pi', 'e', 'phi'}; // Állandó halmaz
    const Map<String, double> mathConstants = {
      'pi': 3.14159,
      'e': 2.71828
    }; // Állandó térkép
    
  4. Olyan kontextusokban, ahol állandó értéket várnak: Például Flutterben widgetek létrehozásakor, ahol az állandó widgetek optimalizálhatók.

    // Flutter kontextusban
    const Text('Hello, World!'); // Állandó widget
    

Különbség a final-tól:

  • A const olyan értéket határoz meg, amely ismert a fordítási időben.
  • A final olyan értéket határoz meg, amelyet csak egyszer rendelnek hozzá futás közben, és utána nem módosítható.
Jellemzők const final
Inicializálási időpontja Fordítási időben Futási időben (egyszer)
Érték változtathatósága Nem változtatható Egyszer hozzárendelve, utána nem változtatható
Alkalmazás példányokra Állandó példányt hoz létre (ha a konstruktor const) Olyan hivatkozást hoz létre, amely nem változtatható
Kollekciókra való alkalmazás Nem változtatható kollekciót hoz létre, tartalma is változtathatatlan Változtatható tartalmú kollekcióra is alkalmazható referencia