Sobes.tech
Middle

Ką leidžia daryti nuolatiniai konstruktoriai Dart?

sobes.tech AI

Atsakymas iš AI

Dart'eje nuolatiniai konstruktoriai leidžia kurti objektus, kurie yra konstantiniai kompiliacijos metu. Tai reiškia, kad objekto reikšmė yra žinoma kompiliacijos metu, ne tik vykdymo metu.

Privalumai naudojant nuolatinius konstruktorius:

  • Našumas: Objektai, sukurti naudojant nuolatinius konstruktorius, yra talpinami į talpyklą (cache) kompiliatoriaus. Jei sukuriama keli identiški nuolatiniai objektai, jie iš esmės nurodo tą patį egzempliorių atmintyje, tai sumažina naujų objektų kūrimo išlaidas ir atminties suvartojimą.
  • Efektyvumas: leidžia optimizuoti kodą kompiliacijos metu.
  • Naudojimas nuolatinėse išraiškose: Objektai, sukurti naudojant nuolatinį konstruktorių, gali būti naudojami kituose nuolatinėse išraiškose, pvz., const deklaracijose.

Sąlygos naudoti nuolatinį konstruktorių:

  • Visos klasės laukai turi būti final.
  • Konstruktorio kūnas turi būti tuščias arba tik su iškvietimu į tėvo konstruktorių (super()).
  • Konstruktorius turi būti pažymėtas žodžiu const.

Pavyzdys:

class Point {
  final double x;
  final double y;

  // Nuolatinis konstruktorius
  const Point(this.x, this.y);
}

void main() {
  // Nuolatiniai objektų kūrimas
  const Point p1 = Point(0.0, 0.0);
  const Point p2 = Point(0.0, 0.0);

  // p1 ir p2 nurodo tą patį objektą atmintyje
  print(p1 == p2); // Išves true
}