Repaso: temperaturas
Parte de la sección Programación orientada a objetos del Journey de R de Coddy. Lección 6 de 57.
Desafío
IntermedioConstruye la clase S3 temperature en Temperature.R. Una temperatura es un número con un atributo unit (C o F).
new_temperature(value, unit)comprueba los tipos constopifnot()y devuelvestructure(value, unit = unit, class = "temperature").validate_temperature(x)se detiene conunit must be C or F, o conbelow absolute zerocuando el valor es inferior a -273.15 C o -459.67 F.temperature(value, unit = "C")convierte el valor conas.double(), convierte la unidad a mayúsculas y devuelve una temperatura validada.format.temperature()devuelve21.5 Ccon una posición decimal, yprint.temperature()imprimeTemperature: 21.5 Cy devuelveinvisible(x).convert_to(t, unit)devuelve una temperatura en la unidad indicada (el mismo valor cuando la unidad ya coincide).
Usa call. = FALSE en cada stop(). El código proporcionado lee líneas 21.5 c F (valor, unidad, unidad de destino), imprime la temperatura y la convertida, o error: y el mensaje.
Tu código va en Temperature.R. main.R contiene el código proporcionado de entrada/salida y no se puede editar.
Pruébalo tú mismo
source("Temperature.R")
# Código de entrada/salida suministrado: déjalo tal como está
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 = ""))
}
Todas las lecciones de Programación orientada a objetos
1Fundamentos de S3
Trabajar con archivosListas con una claseFunciones constructorasMétodos de impresión y formatoValidadores y auxiliaresRepaso: temperaturas4Encapsulación en R
Cierres como objetosEntornos como objetosFunciones de accesoProtección del estadoRepaso: parquímetro2S3 Genéricos y métodos
Genéricos y UseMethodMétodos predeterminadosMétodos para genéricos baseFundamentos de NextMethodRepaso: áreas de figuras5Clases S4
Definición de clases S4Slots y accesoComprobaciones de validezMétodos showRepaso - Catálogo de productos8Clases de referencia
Definición de clases de referenciaMétodos y actualizaciones de camposSemántica de copiaHerencia y callSuperRepaso: cola de tareas11Proyecto: Gestión de biblioteca
Libros y miembrosPréstamo de librosPractica por tu cuenta: Compilador de R online