Görev ekleme
- Kotlin kursu
- Başlangıç
- Ders 84/116
- 6 dk
addTask fonksiyonuyla listeye görev eklemeyi öğrenirsin.
Görev ekleme: TodoList ve addTask
Şimdi görevleri saklayacak ikinci bir sınıf kuracağız: TodoList. Bu sınıf, Task nesnelerini bir MutableList<Task> içinde tutar ve addTask metodu ile yeni görev ekler.
class TodoList {
val tasks = mutableListOf<Task>()
fun addTask(title: String) {
tasks.add(Task(title))
}
}addTask yeni bir Task oluşturup listeye ekler. Çağıran yalnızca başlığı verir; nesne oluşturma işi metot içinde saklı kalır.
TodoList ve Task birlikte
TodoList sınıfı, Task nesnelerini bir listede saklar. addTask her çağrıda listeye bir eleman katar. Listeyi yazdırmak için tasks.forEach { println(it.format()) } kullanabilirsin.
val list = TodoList()
list.addTask("Alışveriş")
list.addTask("Ödev")
list.tasks.forEach { println(it.format()) }
// [ ] Alışveriş
// [ ] ÖdevBir sonraki adımda bu yazdırmayı bir listTasks metoduna taşıyacağız; böylece ana kod daha sade kalacak.
Uygulama TodoList sınıfını ve addTask'ı tanımla
Bir class TodoList tanımla; içinde val tasks = mutableListOf<Task>() ve fun addTask(title: String) { tasks.add(Task(title)) } olsun. main içinde bir TodoList oluştur, iki görev ekle ve list.tasks.forEach { println(it.format()) } ile yazdır.
Başlangıç kodu
fun main() {
val list = TodoList()
// addTask ile iki görev ekle ve forEach ile format çıktılarını yazdır
}
// Task veri sınıfını tanımla: title (String), done (Boolean, varsayılan false)
// format fonksiyonu: done ise "[x] title", değilse "[ ] title"Örnek çözüm
fun main() {
val list = TodoList()
list.addTask("Alışveriş")
list.addTask("Ödev")
list.tasks.forEach { println(it.format()) }
}
data class Task(val title: String, val done: Boolean = false) {
fun format() = if (done) "[x] $title" else "[ ] $title"
}
class TodoList {
val tasks = mutableListOf<Task>()
fun addTask(title: String) {
tasks.add(Task(title))
}
}Beklenen çıktı
[ ] Alışveriş [ ] Ödev
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Boşluğu doldur: listeye Task ekle
tasks.____(Task(title))
tasks.add(Task(title))
Açıklama: tasks.add(Task(title)) yeni görevi listeye katar.
2 İfadeyi rolüyle eşleştir
| Kavram | Anlamı |
|---|---|
MutableList<Task> |
Görev listesi |
addTask(title) |
Yeni görev ekler |
tasks.add(...) |
Listeye katar |
Task(title) |
Yeni görev nesnesi |
3 addTask metodunun dönüş türü ne olmalı?
- Int (indeks)
- Boolean
- Task (eklenen)
- Unit (yalnızca ekler) Doğru cevap
Açıklama: addTask bir şey döndürmez; yalnızca listeye ekler. Bu yüzden Unit'tir.