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,
constdeklaratsiyalarida 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
constso'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
}