Revisão - Temperaturas
Parte da seção Programação Orientada a Objetos do Journey de R da Coddy. Lição 6 de 57.
Desafio
MédioCrie a classe S3 temperature em Temperature.R. Uma temperatura é um número com um atributo unit (C ou F).
new_temperature(value, unit)verifica os tipos comstopifnot()e retornastructure(value, unit = unit, class = "temperature").validate_temperature(x)interrompe comunit must be C or F, ou combelow absolute zeroquando o valor está abaixo de -273.15 C ou -459.67 F.temperature(value, unit = "C")converte o valor comas.double(), converte a unidade para maiúsculas e retorna uma temperatura validada.format.temperature()retorna21.5 Ccom uma casa decimal, eprint.temperature()imprimeTemperature: 21.5 Ce retornainvisible(x).convert_to(t, unit)retorna uma temperatura na unidade fornecida (o mesmo valor quando a unidade já corresponde).
Use call. = FALSE em cada stop(). O código fornecido lê linhas 21.5 c F (valor, unidade, unidade de destino), imprime a temperatura e a temperatura convertida, ou error: e a mensagem.
Seu código deve ficar em Temperature.R. main.R contém o código fornecido de entrada/saída e não pode ser editado.
Experimente você mesmo
source("Temperature.R")
# Código de entrada/saída fornecido: mantenha-o 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 as lições de Programação Orientada a Objetos
1Fundamentos do S3
Trabalhando com ArquivosListas com uma ClasseFunções ConstrutorasMétodos de Impressão e FormataçãoValidadores e AuxiliaresRevisão - Temperaturas4Encapsulamento em R
Closures como ObjetosAmbientes como ObjetosFunções de AcessoProtegendo o EstadoRecapitulação - Parquímetro2Genéricos e Métodos S3
Genéricos e UseMethodMétodos padrãoMétodos para genéricos baseFundamentos de NextMethodRevisão - Áreas de formas5Classes S4
Definindo classes S4Slots e acessoVerificações de validadeMétodos showRevisão - Catálogo de produtos8Classes de Referência
Definindo Classes de ReferênciaMétodos e Atualizações de CamposSemântica de CópiaHerança e callSuperRecapitulação — Fila de Tarefas11Projeto: Gerenciamento de Biblioteca
Livros e MembrosEmpréstimo de LivrosPratique por conta própria: Compilador de R online