Comece agoraComece grátis

Aprendendo a cozinhar

O terceiro argumento de R6Class() é chamado public e concentra a funcionalidade voltada ao usuário do objeto. Esse argumento deve ser uma lista, com nomes para cada um de seus elementos.

O elemento public de uma classe R6 contém a funcionalidade disponível ao usuário. Normalmente, ele conterá apenas funções.

O padrão atualizado para criar um gerador de classe R6 é o seguinte:

thing_factory <- R6Class(
  "Thing",
  private = list(
    a_field = "a value",
    another_field = 123
  ),
  public = list(
    do_something = function(x, y, z) {
      # Do something here
    }
  )
)

Este exercicio faz parte do curso

Programação Orientada a Objetos com S3 e R6 em R

Ver curso

Instruções do exercicio

Uma fábrica de micro-ondas foi parcialmente definida para você.

  • Atualize o elemento public da definição para incluir um método cook.
    • O método cook é uma função.
    • Ele deve ter um argumento chamado time_seconds para indicar o tempo de cozimento.
    • No corpo do método cook, você deve passar time_seconds para Sys.sleep() (docs), que não faz nada durante o tempo estipulado.
    • Por fim, o método cook deve chamar print() (docs) com a string "Your food is cooked!"
  • Crie um objeto micro-ondas chamado a_microwave_oven usando o método new() de microwave_oven_factory.
  • Chame o método cook() de a_microwave_oven por 1 segundo.

exercicio interativo prático

Tente este exercicio completando este código de exemplo.

# 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 e Executar Código