CodeBlanks Logo Icon CodeBlanks

Birleştirme

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

main.dart
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

main.dart
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

Soru
void main() {
  var list = TodoList();
  list.addTask(____);
  list.addTask('Spor yap');
  list.listTasks();
}
Cevap
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.

Başlangıç bölümündeki tüm dersler