Začněte nyníZačněte zdarma

Učíme se vařit

Třetím argumentem funkce R6Class() je public – obsahuje funkcionalitu objektu přístupnou uživateli. Tento argument by měl být seznam, kde každý prvek má svůj název.

Element public třídy R6 obsahuje vše, co má uživatel k dispozici. Zpravidla zahrnuje pouze funkce.

Aktualizovaný vzor pro vytvoření generátoru třídy R6 vypadá takto:

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

Toto cvičení je součástí kurzu

Objektově orientované programování s S3 a R6 v R

Zobrazit kurz

Pokyny k cvičení

Továrna na mikrovlnné trouby je pro tebe částečně připravená.

  • Doplň element public v definici o metodu cook.
    • Metoda cook je funkce.
    • Měla by mít jeden argument time_seconds udávající dobu vaření.
    • V těle metody cook předej time_seconds funkci Sys.sleep() (dokumentace), která po zadanou dobu nic nedělá.
    • Nakonec by metoda cook měla pomocí print() (dokumentace) vypsat řetězec "Your food is cooked!".
  • Vytvoř objekt mikrovlnné trouby s názvem a_microwave_oven pomocí metody new() továrny microwave_oven_factory.
  • Zavolej metodu cook() objektu a_microwave_oven s dobou vaření 1 sekunda.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# 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
___
Upravit a spustit kód