Ulasan: Suhu
Termasuk bagian Pemrograman Berorientasi Object dalam perjalanan R di Coddy. Pelajaran 6 dari 57.
Tantangan
SedangBuat class S3 temperature di Temperature.R. Suhu adalah angka dengan atribut unit (C atau F).
new_temperature(value, unit)memeriksa tipe denganstopifnot()dan mengembalikanstructure(value, unit = unit, class = "temperature").validate_temperature(x)menghentikan proses denganunit must be C or F, atau denganbelow absolute zerojika nilainya di bawah -273.15 C atau -459.67 F.temperature(value, unit = "C")mengonversi nilai denganas.double(), mengubah unit menjadi huruf kapital, lalu mengembalikan suhu yang sudah divalidasi.format.temperature()mengembalikan21.5 Cdengan satu angka di belakang koma, danprint.temperature()mencetakTemperature: 21.5 Clalu mengembalikaninvisible(x).convert_to(t, unit)mengembalikan suhu dalam unit yang diberikan, dengan nilai yang sama jika unitnya sudah cocok.
Gunakan call. = FALSE di setiap stop(). Kode yang disediakan membaca baris 21.5 c F (nilai, unit, unit tujuan), mencetak suhu dan hasil konversinya, atau error: dan pesannya.
Tulis kodemu di Temperature.R. main.R berisi kode input/output yang disediakan dan tidak boleh diedit.
Coba sendiri
source("Temperature.R")
# Kode input/output yang disediakan: biarkan apa adanya
input <- suppressWarnings(readLines(file("stdin")))
for (line in input) {
p <- strsplit(line, " ")[[1]]
result <- tryCatch({
t <- temperature(p[1], p[2])
print(t)
print(convert_to(t, p[3]))
NULL
}, error = function(e) cat("error: ", conditionMessage(e), "\n", sep = ""))
}
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