Sobes.tech
Middle

Ποιοι είναι οι τρόποι χρήσης της λέξης-κλειδιού const στη Dart;

sobes.tech AI

Απάντηση από AI

Η λέξη-κλειδί const στη Dart χρησιμοποιείται για τη δημιουργία σταθερών τιμών που καθορίζονται κατά τη μεταγλώττιση και δεν μπορούν να τροποποιηθούν κατά την εκτέλεση του προγράμματος.

Τρόποι χρήσης:

  1. Ως τροποποιητής μεταβλητής: Χρησιμοποιείται για τον ορισμό μιας μεταβλητής της οποίας η τιμή είναι σταθερή κατά τη μεταγλώττιση.

    const int speedOfLight = 299792458; // Σταθερή τιμή
    
  2. Ως τροποποιητής κατασκευαστή: Ένας κατασκευαστής που δηλώνεται ως const δημιουργεί αμετάβλητα στιγμιότυπα της κλάσης, εφόσον όλα τα πεδία του είναι τελικά (final) ή σταθερά (const).

    class Point {
      final double x;
      final double y;
    
      const Point(this.x, this.y); // Σταθερός κατασκευαστής
    }
    
    const origin = Point(0.0, 0.0); // Δημιουργία σταθερού στιγμιότυπου
    
  3. Για τη δημιουργία σταθερών συλλογών: Χρησιμοποιείται για τη δημιουργία λιστών, συνόλων και χαρτών των οποίων το περιεχόμενο είναι σταθερό κατά τη μεταγλώττιση.

    const List<int> primeNumbers = [2, 3, 5, 7, 11]; // Σταθερή λίστα
    const Set<String> constants = {'pi', 'e', 'phi'}; // Σταθερό σύνολο
    const Map<String, double> mathConstants = {
      'pi': 3.14159,
      'e': 2.71828
    }; // Σταθερός χάρτης
    
  4. Σε συμφραζόμενα όπου αναμένεται σταθερή τιμή: Για παράδειγμα, κατά τη δημιουργία widget στο Flutter, όπου τα σταθερά widget μπορούν να βελτιστοποιηθούν.

    // Στο πλαίσιο του Flutter
    const Text('Hello, World!'); // Σταθερό widget
    

Διαφορές με το final:

  • Το const ορίζει μια τιμή γνωστή κατά τη μεταγλώττιση.
  • Το final ορίζει μια τιμή που ανατίθεται μόνο μία φορά κατά την εκτέλεση και δεν μπορεί να αλλάξει μετά.
Χαρακτηριστικό const final
Χρόνος αρχικοποίησης Κατά τη μεταγλώττιση Κατά την εκτέλεση (μία φορά)
Αμεταβλητότητα της τιμής Αμετάβλητη Ανατίθεται μία φορά, μετά δεν αλλάζει
Εφαρμογή σε στιγμιότυπα Δημιουργεί σταθερό στιγμιότυπο (αν ο κατασκευαστής είναι const) Δημιουργεί αμετάβλητη αναφορά σε αντικείμενο
Εφαρμογή σε συλλογές Δημιουργεί αμετάβλητη συλλογή με αμετάβλητο περιεχόμενο Δημιουργεί αμετάβλητη αναφορά σε συλλογή (το περιεχόμενο μπορεί να είναι μεταβλητό)