Rangkuman: Antrean Tugas
Termasuk bagian Pemrograman Berorientasi Object dalam perjalanan R di Coddy. Pelajaran 41 dari 57.
Tantangan
SedangBuat antrean tugas dari dua Reference Class. Kedua definisi dibungkus dalam suppressMessages().
TaskdiTask.R: fieldtitle,priority(numeric), dandone(logical);initializemenetapkandonemenjadiFALSEjika tidak diberikan;label()mengembalikan[x] fix (3)untuk tugas yang selesai atau[ ] fix (3).TaskQueuediTaskQueue.R: fieldtasks(sebuahlist);add(title, priority)menambahkanTaskbaru dan mengembalikaninvisible(.self);next_task()mengembalikan judul tugas terbuka dengan prioritas tertinggi (yang ditambahkan lebih awal jika prioritasnya sama), ataunothing;complete(title)menandai tugas terbuka pertama dengan judul tersebut sebagai selesai dan mengembalikanTRUE, atauFALSE;report()mengembalikan satu label untuk setiap tugas sesuai urutan penambahannya, laluopen: 2.
Kode yang disediakan membaca add fix 3, next, dan done fix, lalu menambahkan dua tugas dalam satu pemanggilan berantai dan mencetak laporan.
Tuliskan kodemu di Task.R dan TaskQueue.R. main.R berisi kode input/output yang disediakan dan tidak dapat diedit.
Coba sendiri
source("Task.R")
source("TaskQueue.R")
# Kode input/output yang disediakan: biarkan apa adanya
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())
Semua pelajaran di Pemrograman Berorientasi Object
1Dasar S3
Bekerja dengan fileList dengan classFungsi KonstruktorMethod print dan formatValidator dan helperUlasan: Suhu4Enkapsulasi di R
Closure sebagai objectEnvironment sebagai objectFungsi accessorMelindungi stateRangkuman: Meter Parkir2S3 Generics dan Method
Generics dan UseMethodMethod DefaultMethod untuk Base GenericsDasar-Dasar NextMethodRekap: Luas Bangun5S4 class
Mendefinisikan class S4Slots dan AksesPemeriksaan ValiditasMethod showRingkasan: Katalog Produk8Kelas Referensi
Mendefinisikan Kelas ReferensiPembaruan method dan fieldSemantik PenyalinanPewarisan dan callSuperRangkuman: Antrean Tugas11Proyek: Manajemen Perpustakaan
Buku dan AnggotaMeminjam BukuLatihan sendiri: Compiler R online