EmpezarEmpieza gratis

Aprendiendo a cocinar

El tercer argumento de R6Class() se llama public y contiene la funcionalidad visible para el usuario del objeto. Este argumento debe ser una lista, con nombres para cada uno de sus elementos.

El elemento public de una clase R6 contiene la funcionalidad disponible para el usuario. Normalmente solo contendrá funciones.

El patrón actualizado para crear un generador de clases R6 es el siguiente:

thing_factory <- R6Class(
  "Thing",
  private = list(
    a_field = "a value",
    another_field = 123
  ),
  public = list(
    do_something = function(x, y, z) {
      # Haz algo aquí
    }
  )
)

Este ejercicio forma parte del curso

Programación orientada a objetos con S3 y R6 en R

Ver curso

Instrucciones del ejercicio

Se ha definido parcialmente una fábrica de microondas para ti.

  • Actualiza el elemento public de la definición para incluir un método cook.
    • El método cook es una función.
    • Debe tener un argumento llamado time_seconds para indicar el tiempo de cocción.
    • En el cuerpo del método cook, debes pasar time_seconds a Sys.sleep() (docs), que no hace nada durante el tiempo indicado.
    • Por último, el método cook debe hacer print() (docs) de la cadena "Your food is cooked!"
  • Crea un objeto microondas llamado a_microwave_oven usando el método new() de microwave_oven_factory.
  • Llama al método cook() de a_microwave_oven durante 1 segundo.

ejercicio interactivo práctico

Prueba este ejercicio completando este código de ejemplo.

# Add a cook method to the factory definition
microwave_oven_factory <- R6Class(
  "MicrowaveOven",
  private = list(
    power_rating_watts = 800
  ),
  public = list(
    ___ = ___(___) {
      ___
      ___
    }
  )
)

# Create microwave oven object
a_microwave_oven <- ___

# Call cook method for 1 second
___
Editar y ejecutar código