Özet - Görev Kuyruğu
Coddy'nin R Journey'sinin Nesne Tabanlı Programlama bölümünün bir parçası. Ders 41 / 57.
Görev
Ortaİki Reference Class kullanarak bir görev kuyruğu oluşturun. Her iki tanım da suppressMessages() içine alınmıştır.
Task,Task.Riçinde:title,priority(numeric) vedone(logical) alanları;initialize, verilmediğindedonedeğeriniFALSEyapar;label(), tamamlanmış bir görev için[x] fix (3)veya[ ] fix (3)döndürür.TaskQueue,TaskQueue.Riçinde:tasksalanı (birlist);add(title, priority)yeni birTaskekler veinvisible(.self)döndürür;next_task(), en yüksek önceliğe sahip açık görevin başlığını (eşitlik durumunda daha önce ekleneni) veyanothingdöndürür;complete(title), bu ada sahip ilk açık görevi tamamlandı olarak işaretler veTRUE, aksi takdirdeFALSEdöndürür;report(), eklenme sırasına göre her görev için bir etiket ve ardındanopen: 2döndürür.
Verilen kod add fix 3, next ve done fix girdilerini okur; ardından tek bir zincirleme çağrıyla iki görev ekler ve raporu yazdırır.
Kodunuz Task.R ve TaskQueue.R dosyalarına yazılmalıdır. main.R, verilen girdi/çıktı kodunu içerir ve düzenlenemez.
Kendin dene
source("Task.R")
source("TaskQueue.R")
# Sağlanan girdi/çıktı kodu: olduğu gibi bırakın
input <- suppressWarnings(readLines(file("stdin")))
q <- TaskQueue$new()
for (line in input) {
p <- strsplit(line, " ")[[1]]
if (p[1] == "add") {
q$add(p[2], as.numeric(p[3]))
} else if (p[1] == "next") {
cat("next: ", q$next_task(), "\n", sep = "")
} else if (p[1] == "done") {
cat(if (q$complete(p[2])) "completed " else "no open task ", p[2], "\n", sep = "")
}
}
q$add("late", 1)$add("later", 1)
writeLines(q$report())
Nesne Tabanlı Programlama bölümündeki tüm dersler
1S3 Temelleri
Dosyalarla ÇalışmaSınıf ile ListelerYapıcı FonksiyonlarPrint ve Format MetotlarıDoğrulayıcılar ve YardımcılarTekrar - Sıcaklıklar4R'da Kapsülleme
Nesne Olarak Closure'larNesne Olarak OrtamlarErişimci FonksiyonlarDurumu KorumaÖzet - Parkmetre2S3 Generic'leri ve Metotları
Generic'ler ve UseMethodVarsayılan MetotlarTemel Generic'ler için MetotlarNextMethod TemelleriTekrar - Şekil Alanları5S4 Sınıfları
S4 Sınıflarını TanımlamaSlotlar ve ErişimGeçerlilik KontrolleriShow MetotlarıÖzet - Ürün Kataloğu8Referans Sınıfları
Referans Sınıflarını TanımlamaMetotlar ve Alan GüncellemeleriKopyalama SemantiğiKalıtım ve callSuperÖzet - Görev Kuyruğu11Proje: Kütüphane Yönetimi
Kitaplar ve ÜyelerKitap Ödünç AlmaKendi başına pratik yap: Online R derleyicisi