Middle
Povedzte mi o konštantných konštruktoroch vo Flutteri.
sobes.tech AI
Odpoveď od AI
Konštantný konštruktor umožňuje vytvoriť objekt, ktorý môže prekladač vypočítať počas kompilácie a znovu ho použiť. To zvyšuje výkon a znižuje spotrebu pamäte.
Kľúčové vlastnosti:
- Označené kľúčovým slovom
const. - Všetky polia triedy definované týmto konštruktorom musia byť
final. - Všetky argumenty konštruktora musia byť tiež konštantné alebo mať predvolené konštantné hodnoty.
- Pri vytváraní inštancie s týmto konštruktorom sa používa kľúčové slovo
const.
Príklad:
class Point {
final double x;
final double y;
const Point(this.x, this.y); // Konštantný konštruktor
}
void main() {
// Tieto dva objekty budú predstavovať rovnakú inštanciu v pamäti
const p1 = Point(1.0, 2.0);
const p2 = Point(1.0, 2.0);
// Tento objekt bude novou inštanciou
final p3 = Point(1.0, 2.0);
print(identical(p1, p2)); // Vytlačí: true
print(identical(p1, p3)); // Vytlačí: false
}
Výhody používania const konštruktorov:
- Výkon: Objekty sú vytvárané iba raz a znovu sa používajú.
- Zníženie spotreby pamäte: Počet vytvorených objektov sa znižuje.
- Nemennosť: Objekty vytvorené s
constsú nemenné.
Obmedzenia:
- Trieda nesmie mať továrenský konštruktor (
factory). - Trieda nemôže obsahovať meniteľné polia.
Konštantné konštruktory sa často používajú na vytváranie nemenných widgetov vo Flutteri, ako sú Text, Icon, Padding, SizedBox, čo je dobrá prax na optimalizáciu výkonu používateľského rozhrania.