1. Učit se
  2. /
  3. Kurzy
  4. /
  5. Objektově orientované programování s S3 a R6 v R

Connected

Cvičení

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
    }
  )
)

Pokyny

100 XP

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.