const constructor
- Flutter kursu
- Başlangıç
- Ders 19/99
- 4 dk
const constructor'ın performansı nasıl artırdığını öğrenirsin.
const constructor
Bir kurucuyu const olarak işaretlersen, Flutter aynı parametrelerle yapılan tüm örnekleri tek bir canonical (kanonik) nesnede birleştirir. Bu, bellek kullanımını ve widget ağacı karşılaştırma hızını artırır. Mümkün olduğunda const kullanmak Flutter performansının temel ipuçlarından biridir.
class Etiket extends StatelessWidget {
final String metin;
const Etiket({super.key, required this.metin});
@override
Widget build(BuildContext context) {
return Text(metin);
}
}
// Kullanım:
Etiket(metin: 'Selam') // her seferinde yeni nesne
const Etiket(metin: 'Selam') // tek nesne, yeniden kullanılırcanonical örnek
const ile üretilen nesneler canonical'dır: aynı değerlerle yapılan tüm örnekler bellekte aynı adreste yaşar. Flutter, widget ağacını karşılaştırırken iki const widget'ın özdeş olup olmadığını tek bir adres karşılaştırmasıyla anlar. Bu, diff algoritmasını çok hızlandırır.
// const olmayan widget: her biri yeni nesne
Text('a')
Text('a')
// const widget: tek nesne
const Text('a')
const Text('a')Uygulama const bilgisini yazdır
main içinde iki satırı print ile yazdır: const tek nesne ve canonical hizli.
Başlangıç kodu
void main() {
// iki satır yazdır:
// const tek nesne
// canonical hizli
}Örnek çözüm
void main() {
print('const tek nesne');
print('canonical hizli');
}Beklenen çıktı
const tek nesne canonical hizli
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 const constructor ne sağlar?
- Her seferinde yeni nesne üretir
- Aynı parametrelerle tek canonical nesne üretir Doğru cevap
- Çalışma sırasında parametre değiştirmeye izin verir
- Widget'ı görünmez yapar
Açıklama: const constructor, aynı parametrelerle yapılan tüm örnekleri tek canonical nesnede birleştirir.
2 const constructor çağrısı
final etiket = ____ Etiket(metin: 'Selam');
final etiket = const Etiket(metin: 'Selam');
Açıklama: const ile çağrılan kurucu derleme zamanında sabit üretir.
3 const constructor kavramları
| Kavram | Anlamı |
|---|---|
const |
Derleme zamanında sabit üretir |
canonical |
Aynı nesnenin tek örnek olması |
performance |
Daha az bellek, daha hızlı diff |
const Etiket(...) |
Tek nesne, yeniden kullanılır |