Sobes.tech
Middle

Koji su načini korišćenja ključne reči const u Dart-u?

sobes.tech АИ

Одговор од АИ

Ključna riječ const u Dart-u se koristi za kreiranje konstantnih vrijednosti koje se određuju tokom kompilacije i ne mogu biti promijenjene tokom izvršavanja programa.

Načini korišćenja:

  1. Kao modifikator promenljive: Koristi se za deklarisanje promenljive čija je vrijednost konstantna tokom kompilacije.

    const int speedOfLight = 299792458; // Konstantna vrijednost
    
  2. Kao modifikator konstruktora: Konstruktor označen kao const stvara nepromjenjive instance klase ako su sva njena polja finalna (final) ili konstantna (const).

    class Point {
      final double x;
      final double y;
    
      const Point(this.x, this.y); // Konstantni konstruktor
    }
    
    const origin = Point(0.0, 0.0); // Kreiranje konstantne instance
    
  3. Za kreiranje konstantnih kolekcija: Koristi se za kreiranje listi, skupova i mapa čiji sadržaj je konstantan tokom kompilacije.

    const List<int> primeNumbers = [2, 3, 5, 7, 11]; // Konstantna lista
    const Set<String> constants = {'pi', 'e', 'phi'}; // Konstantni skup
    const Map<String, double> mathConstants = {
      'pi': 3.14159,
      'e': 2.71828
    }; // Konstantna mapa
    
  4. U kontekstima gde se očekuje konstantna vrednost: Na primer, pri kreiranju widgeta u Flutter-u, gde se konstantni widgeti mogu optimizovati.

    // U Flutter kontekstu
    const Text('Hello, World!'); // Konstantni widget
    

Razlike od final:

  • const definiše vrednost poznatu tokom kompilacije.
  • final definiše vrednost koja se dodeljuje samo jednom tokom izvršenja i ne može biti promenjena nakon toga.
Karakteristika const final
Vreme inicijalizacije Vreme kompilacije Vreme izvršenja (jednom)
Promenljivost vrednosti Neizmenjivo Dodeljuje se jednom, zatim nepromenjivo
Primena na instance Kreira konstantnu instancu (ako je konstruktor const) Kreira nepromenjivu referencu na objekat
Primena na kolekcije Kreira nepromenjivu kolekciju sa nepromenljivim sadržajem Kreira nepromenjivu referencu na kolekciju (sadržaj može biti promenljiv)