Sobes.tech
Middle

Dartda doimiy konstruktorlar nima qilish imkonini beradi?

sobes.tech AI

AIdan javob

Dart'ta doimiy konstruktorlar, kompilatsiya vaqtida doimiy bo'lgan obyektlarni yaratishga imkon beradi. Bu, obyektning qiymati faqat bajarilish vaqtida emas, balki kompilatsiya vaqtida ham ma'lum bo'lishini anglatadi.

Doimiy konstruktorlardan foydalanishning afzalliklari:

  • Performans: Doimiy konstruktorlar bilan yaratilgan obyektlar kompilyator tomonidan keshga olinadi. Agar bir nechta bir xil doimiy obyektlar yaratilsa, ular aslida xotirada bir xil nusxaga murojaat qiladilar, bu esa yangi obyektlarni yaratish xarajatlarini kamaytiradi va xotira iste'molini kamaytiradi.
  • Samaradorlik: Kodni kompilatsiya vaqtida optimallashtirish imkonini beradi.
  • Doimiy ifodalar bilan foydalanish: Doimiy konstruktor bilan yaratilgan obyektlar boshqa doimiy ifodalar, masalan, const deklaratsiyalarida ishlatilishi mumkin.

Doimiy konstruktorni ishlatish shartlari:

  • Sinfning barcha maydonlari final bo'lishi kerak.
  • Konstruktorning tanasi bo'sh yoki faqat ota-klass konstruktorini chaqirish (super()) bilan cheklangan bo'lishi kerak.
  • Konstruktor const so'zi bilan belgilanishi kerak.

Misol:

class Point {
  final double x;
  final double y;

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

void main() {
  // Doimiy obyektlarni yaratish
  const Point p1 = Point(0.0, 0.0);
  const Point p2 = Point(0.0, 0.0);

  // p1 va p2 xotirada bir xil obyektga murojaat qiladi
  print(p1 == p2); // true ni chiqaradi
}