Koleksiyonlar
- Dart kursu
- Orta seviye
- Ders 114/116
- 6 dk
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
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
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ı
var tasks = ____[Task('Kod yaz'), Task('Test yaz', done: true)];
var tasks = <Task>[Task('Kod yaz'), Task('Test yaz', done: true)];
Açıklama: <Task>[...] türünü belirten liste sabitidir.