Ripasso - Temperature
Fa parte della sezione Programmazione orientata agli oggetti del percorso R di Coddy. Lezione 6 di 57.
Sfida
MedioRealizza la classe S3 temperature in Temperature.R. Una temperatura è un numero con un attributo unit (C o F).
new_temperature(value, unit)verifica i tipi constopifnot()e restituiscestructure(value, unit = unit, class = "temperature").validate_temperature(x)si interrompe conunit must be C or F, oppure conbelow absolute zeroquando il valore è inferiore a -273.15 C o -459.67 F.temperature(value, unit = "C")converte il valore conas.double(), converte l’unità in maiuscolo e restituisce una temperatura convalidata.format.temperature()restituisce21.5 Ccon una cifra decimale, mentreprint.temperature()stampaTemperature: 21.5 Ce restituisceinvisible(x).convert_to(t, unit)restituisce una temperatura nell’unità specificata (lo stesso valore se l’unità corrisponde già).
Usa call. = FALSE in ogni stop(). Il codice fornito legge righe 21.5 c F (valore, unità, unità di destinazione), stampa la temperatura e quella convertita, oppure error: e il messaggio.
Il tuo codice va inserito in Temperature.R. main.R contiene il codice di input/output fornito e non può essere modificato.
Provalo tu
source("Temperature.R")
# Supplied input/output code: keep it as it is
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 = ""))
}
Tutte le lezioni di Programmazione orientata agli oggetti
1Nozioni di base su S3
Lavorare con i fileListe con una classeFunzioni costruttriciMetodi di stampa e formattazioneValidatori e funzioni di supportoRipasso - Temperature4Incapsulamento in R
Chiusure come oggettiAmbienti come oggettiFunzioni di accessoProteggere lo statoRiepilogo - Parcometro2Generics e metodi S3
Generics e UseMethodMetodi predefinitiMetodi per i generics di baseNozioni di base su NextMethodRiepilogo - Aree delle forme5Classi S4
Definire le classi S4Slot e accessoControlli di validitàMetodi showRiepilogo - Catalogo prodotti8Classi di riferimento
Definizione delle classi di riferimentoMetodi e aggiornamenti dei campiSemantica della copiaEreditarietà e callSuperRiepilogo - coda di attività11Progetto: Gestione della biblioteca
Libri e iscrittiPrestito dei libriEsercitati da solo: Compilatore R online