Birleştirme
- Dart kursu
- Başlangıç
- Ders 87/116
- 6 dk
Menü döngüsüyle çalışan bir CLI uygulaması yazarsın.
Birleştirme
Artık tüm parçalar hazır: Task sınıfı, TodoList ve onun addTask, listTasks, completeTask metotları. Bu derste hepsini main içinde çağırıp çalışan bir CLI elde edeceğiz.
Tipik bir oturum: birkaç görev ekle, listele, birini tamamla, yeniden listele. Bu akışı main içinde sırayla yazarak taklit ederiz. Gerçek bir CLI stdin'den okur; biz şimdilik sabit çağrılarla başlayacağız.
Son görevde iki görev ekleyip birini tamamlayacak ve listeyi yazdıracaksın. Bu, projenin tüm parçalarını bir arada gösterir.
Çalışan oturum
Şimdi tam bir oturum yazacağız. main içinde önce var list = TodoList(); ile listemizi oluştururuz. Sonra iki görev ekler, listeler, birini tamamlar ve yeniden listeleriz.
Bu akış, kullanıcının tipik etkileşimini taklit eder. Gerçek bir CLI stdin.readLineSync ile kullanıcıdan komut alır; biz şimdilik sabit kod kullanıyoruz. Bu, projeyi küçük ve öngörülebilir tutar.
Çıktı, her listTasks çağrısında görev listesini yazdırır. Bu, eklemenin ve tamamlamanın etkisini görmeni sağlar. İleriki kurslarda bu CLI'ı genişleteceğiz.
Uygulama Çalışan CLI
main içinde bir TodoList oluştur. list.addTask('Kitap oku') ve list.addTask('Spor yap') ile iki görev ekle. list.completeTask(0) ile ilk görevi tamamla. Son olarak list.listTasks() çağrısı ekle.
Başlangıç kodu
class Task {
String title;
bool done = false;
Task(this.title);
}
class TodoList {
List<Task> tasks = [];
void addTask(String title) {
tasks.add(Task(title));
}
void listTasks() {
for (var i = 0; i < tasks.length; i++) {
print('${i + 1}. ${tasks[i].title}');
}
}
void completeTask(int i) {
tasks[i].done = true;
}
}
void main() {
// iki görev ekle, birini tamamla, listele
}Örnek çözüm
void main() {
var list = TodoList();
list.addTask('Kitap oku');
list.addTask('Spor yap');
list.completeTask(0);
list.listTasks();
}Beklenen çıktı
1. Kitap oku 2. Spor yap
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Hangi sıra mantıklı?
- listele → ekle → tamamla
- tamamla → ekle → listele
- ekle → tamamla → ekle
- ekle → listele → tamamla → listele Doğru cevap
Açıklama: önce ekle, sonra listele, sonra tamamla, en son yeniden listele.
2 Metotları amacına eşleştir
| Kavram | Anlamı |
|---|---|
addTask |
Görev ekleme |
listTasks |
Listeleme |
completeTask |
Tamamlama |
Task |
Tek görev |
3 İki görev ekle
void main() {
var list = TodoList();
list.addTask(____);
list.addTask('Spor yap');
list.listTasks();
}
void main() {
var list = TodoList();
list.addTask('Kitap oku');
list.addTask('Spor yap');
list.listTasks();
}
Açıklama: dize tek tırnak içinde yazılır.