Sobes.tech
Middle

Ko ļauj darīt konstantiem konstruktoriem Dart?

sobes.tech AI

Atbilde no AI

Dart valodā konstanti konstruktoru ļauj izveidot objektus, kas ir konstanti laikā, kad programma tiek kompilēta. Tas nozīmē, ka objekta vērtība ir zināma kompilācijas laikā, ne tikai izpildes laikā.

Priekšrocības, izmantojot konstantes konstruktorus:

  • Veiktspēja: Objekti, kas izveidoti ar konstantiem konstruktoriem, tiek kešoti ar kompilatoru. Ja tiek izveidots vairāki identiski konstanti objekti, tie faktiski atsaucas uz to pašu eksemplāru atmiņā, kas samazina jaunu objektu izveides izmaksas un atmiņas patēriņu.
  • Efektivitāte: ļauj optimizēt kodu kompilācijas laikā.
  • Izmantošana konstantes izteiksmēs: Objekti, kas izveidoti ar konstantiem konstruktoru, var tikt izmantoti citās konstantes izteiksmēs, piemēram, const deklarācijās.

Nosacījumi, lai izmantotu konstanti konstruktoru:

  • Visām klases laukiem jābūt final.
  • Konstruktoram jābūt tukšam vai satur tikai izsaukumu uz vecāka konstruktoru (super()).
  • Konstruktoram jābūt atzīmētam ar vārdu const.

Piemērs:

class Point {
  final double x;
  final double y;

  // Konstants konstruktor
  const Point(this.x, this.y);
}

void main() {
  // Konstantu objektu izveide
  const Point p1 = Point(0.0, 0.0);
  const Point p2 = Point(0.0, 0.0);

  // p1 un p2 atsaucas uz to pašu objektu atmiņā
  print(p1 == p2); // Izvadīs true
}