CodeBlanks Logo Icon CodeBlanks

Parametrelerle esneklik

Constructor parametreleri ile widget'ı esnek yapmayı öğrenirsin.

Constructor parametreleri

Özel widget'ı esnek hale getirmek için alanları kurucu parametre olarak alırsın. required anahtar kelimesi parametrenin zorunlu olduğunu, = deger biçimi ise varsayılan değer belirtir. Böylece aynı widget farklı verilerle çalışır.

class Etiket extends StatelessWidget {
  final String yazi;
  final Color renk;

  const Etiket({
    super.key,
    required this.yazi,
    this.renk = const Color(0xFF000000),
  });

  @override
  Widget build(BuildContext context) {
    return Text(yazi, style: TextStyle(color: renk));
  }
}

Varsayılan değer

Bir parametreye = deger biçiminde varsayılan değer verirsen, çağrıda o parametre belirtilmezse bu değer kullanılır. required ile aynı parametreyi işaretleyemezsin; ikisi birbirini dışlar.

const Etiket({
  super.key,
  required this.yazi,
  this.renk = const Color(0xFF000000),  // varsayılan
});

Bu sayede Etiket(yazi: 'Selam') çağrısı siyah renkli bir etiket verir.

Uygulama Etiket widget'ı yaz

Etiket adında StatelessWidget tanımla. final String yazi alanı required, final Color renk alanı const Color(0xFF000000) varsayılan değerli olsun. build metodu Text(yazi, style: TextStyle(color: renk)) döndürsün. main içinde 'hazir' yazdır.

Başlangıç kodu

main.dart
import 'package:flutter/widgets.dart';

// Etiket StatelessWidget tanımla
// final String yazi (required)
// final Color renk (varsayılan Color(0xFF000000))
// build Text(yazi, style: TextStyle(color: renk)) döndürsün

void main() {
  // 'hazir' yazdır
}

Örnek çözüm

main.dart
import 'package:flutter/widgets.dart';

class Etiket extends StatelessWidget {
  final String yazi;
  final Color renk;

  const Etiket({
    super.key,
    required this.yazi,
    this.renk = const Color(0xFF000000),
  });

  @override
  Widget build(BuildContext context) {
    return Text(yazi, style: TextStyle(color: renk));
  }
}

void main() {
  print('hazir');
}

Beklenen çıktı

hazir

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 required anahtar kelimesi neyi belirtir?

  • Parametrenin final olduğunu
  • Parametrenin zorunlu olduğunu Doğru cevap
  • Parametrenin varsayılan değerli olduğunu
  • Parametrenin async olduğunu

Açıklama: required, adlandırılmış bir parametrenin çağrıda verilmesi zorunlu olduğunu belirtir. async fonksiyon davranışıdır, final alan değişmezliğini ifade eder, varsayılan değer = ile verilir.

2 Zorunlu parametre işaretle

Soru
const Etiket({
  super.key,
  ____ this.yazi,
  this.renk = const Color(0xFF000000),
});
Cevap
const Etiket({
  super.key,
  required this.yazi,
  this.renk = const Color(0xFF000000),
});

Açıklama: Adlandırılmış bir parametreyi zorunlu yapmak için required kullanılır. default Dart anahtar kelimesi değildir, optional zıttıdır, final alan bildirimi içindir.

3 Parametre parçaları

Kavram Anlamı
required zorunlu parametre
= deger varsayılan değer
this.yazi alanı kurucuya bağlama
final değişmez alan

Orta seviye bölümündeki tüm dersler