CodeBlanks Logo Icon CodeBlanks

Koleksiyonlar

List, Map ve Stream ile veri süzme yazarsın.

Koleksiyonlar

Görevleri yönetmek için List<Task> kullanırsın. Birden çok görevi tek bir yapıda tutar; Map ile kategorilere ayırabilirsin.

var tasks = <Task>[Task('Kod yaz'), Task('Test yaz', done: true)]; ile liste kurarsın. tasks.length sayıyı verir.

tasks.where((t) => t.isDone) ile tamamlananları filtreler, .toList() ile listeye çevirirsin.

where ile filtreleme

Tipik kullanım: var done = tasks.where((t) => t.isDone).toList(); ile tamamlananları yeni bir listeye alırsın.

Ardından print(done.length) ile kaç tane tamamlandığını yazdırırsın. where bir iterable döndürür; toList() onu somut bir listeye çevirir.

Bu, fonksiyonel koleksiyon işlemenin temelidir; döngü yazmadan filtreleme yaparsın.

Uygulama List<Task> ile görevler

main içinde var tasks = <Task>[Task('Kod yaz'), Task('Test yaz', done: true)]; tanımla. var done = tasks.where((t) => t.isDone).toList(); ile tamamlananları filtrele. print(done.length) yazdır.

Başlangıç kodu

main.dart
abstract class Trackable {
  bool get isDone;
}

class Task implements Trackable {
  final String title;
  bool done;
  Task(this.title, {this.done = false});

  @override
  bool get isDone => done;
}

void main() {
  // tasks listesi oluştur, where ile filtrele, length yazdır
}

Örnek çözüm

main.dart
abstract class Trackable {
  bool get isDone;
}

class Task implements Trackable {
  final String title;
  bool done;
  Task(this.title, {this.done = false});

  @override
  bool get isDone => done;
}

void main() {
  var tasks = <Task>[Task('Kod yaz'), Task('Test yaz', done: true)];
  var done = tasks.where((t) => t.isDone).toList();
  print(done.length);
}

Beklenen çıktı

1

Soru ve cevaplar

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

1 Koleksiyon işlemleri

Kavram Anlamı
List<Task> Görev listesi
tasks.length Sayı
where(...) Filtreleme
toList() Listeye çevirme

2 Tamamlanan görevleri nasıl filtrelersin?

  • tasks.where((t) => t.isDone) Doğru cevap
  • tasks.find(...)
  • tasks.filter(...)
  • tasks.select(...)

Açıklama: where bir koşula göre eleman süzer.

3 List<Task> tanımı

Soru
var tasks = ____[Task('Kod yaz'), Task('Test yaz', done: true)];
Cevap
var tasks = <Task>[Task('Kod yaz'), Task('Test yaz', done: true)];

Açıklama: <Task>[...] türünü belirten liste sabitidir.

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