Middle
Povězte mi o konstantních konstruktorech ve Flutteru.
sobes.tech AI
Odpověď od AI
Konstantní konstruktor umožňuje vytvořit objekt, který může překladač vypočítat během kompilace a znovu jej použít. To zvyšuje výkon a snižuje spotřebu paměti.
Klíčové vlastnosti:
- Označeno klíčovým slovem
const. - Všechna pole třídy definovaná tímto konstruktorem musí být
final. - Všechna argumenty konstruktoru musí být také konstantní nebo mít výchozí konstantní hodnoty.
- Při vytváření instance s tímto konstruktorem se používá klíčové slovo
const.
Příklad:
class Point {
final double x;
final double y;
const Point(this.x, this.y); // Konstantní konstruktor
}
void main() {
// Tyto dva objekty budou reprezentovat stejnou instanci v paměti
const p1 = Point(1.0, 2.0);
const p2 = Point(1.0, 2.0);
// Tento objekt bude novou instancí
final p3 = Point(1.0, 2.0);
print(identical(p1, p2)); // Vytiskne: true
print(identical(p1, p3)); // Vytiskne: false
}
Výhody používání const konstruktorů:
- Výkon: Objekty jsou vytvářeny pouze jednou a znovu použity.
- Snížení spotřeby paměti: Počet vytvářených objektů se snižuje.
- Neměnnost: Objekty vytvořené s
constjsou neměnitelné.
Omezení:
- Třída nesmí mít tovární konstruktor (
factory). - Třída nesmí obsahovat měnitelné pole.
Konstantní konstruktor se často používá k vytváření neměnných widgetů ve Flutteru, jako jsou Text, Icon, Padding, SizedBox, což je dobrá praxe pro optimalizaci výkonu uživatelského rozhraní.