Sobes.tech
Middle

Quali sono i modi di usare la parola chiave const in Dart?

sobes.tech AI

Risposta dell'AI

La parola chiave const in Dart viene utilizzata per creare valori costanti determinati durante la compilazione e che non possono essere modificati durante l'esecuzione del programma.

Modi di utilizzo:

  1. Come modificatore di variabile: Viene usato per dichiarare una variabile il cui valore è costante durante la compilazione.

    const int speedOfLight = 299792458; // Valore costante
    
  2. Come modificatore di costruttore: Un costruttore dichiarato come const crea istanze immutabili della classe, purché tutti i suoi campi siano finali (final) o costanti (const).

    class Point {
      final double x;
      final double y;
    
      const Point(this.x, this.y); // Costruttore costante
    }
    
    const origin = Point(0.0, 0.0); // Creazione di un'istanza costante
    
  3. Per creare collezioni costanti: Viene usato per creare liste, insiemi e mappe il cui contenuto è costante durante la compilazione.

    const List<int> primeNumbers = [2, 3, 5, 7, 11]; // Lista costante
    const Set<String> constants = {'pi', 'e', 'phi'}; // Insieme costante
    const Map<String, double> mathConstants = {
      'pi': 3.14159,
      'e': 2.71828
    }; // Mappa costante
    
  4. In contesti in cui si attende un valore costante: Ad esempio, durante la creazione di widget in Flutter, dove i widget costanti possono essere ottimizzati.

    // Nel contesto di Flutter
    const Text('Hello, World!'); // Widget costante
    

Differenze con final:

  • const definisce un valore noto durante la compilazione.
  • final definisce un valore che viene assegnato una sola volta durante l'esecuzione e non può essere modificato successivamente.
Caratteristica const final
Tempo di inizializzazione Durante la compilazione Durante l'esecuzione (una volta)
Immutabilità del valore Inalterabile Assegnato una volta, poi inalterabile
Applicazione alle istanze Crea un'istanza costante (se il costruttore è const) Crea un riferimento inalterabile a un oggetto
Applicazione alle collezioni Crea una collezione inalterabile con contenuto inalterabile Crea un riferimento inalterabile a una collezione (il contenuto può essere mutabile)