ÎncepețiÎncepe gratuit

Să învățăm să gătim

Al treilea argument al funcției R6Class() se numește public și conține funcționalitatea disponibilă utilizatorului pentru obiectul respectiv. Acest argument trebuie să fie o listă, cu nume pentru fiecare element al său.

Elementul public al unei clase R6 conține funcționalitatea accesibilă utilizatorului. De obicei, va conține doar funcții.

Patternul actualizat pentru crearea unui generator de clasă R6 este următorul:

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

Acest exercițiu face parte din cursul

Programare orientată pe obiecte cu S3 și R6 în R

Vezi cursul

Instrucțiuni pentru exercițiu

O fabrică de cuptoare cu microunde a fost definită parțial pentru tine.

  • Actualizează elementul public al definiției pentru a include o metodă cook.
    • Metoda cook este o funcție.
    • Ar trebui să aibă un singur argument numit time_seconds, care reprezintă durata de gătire.
    • În corpul metodei cook, transmite time_seconds către Sys.sleep() (docs), care nu face nimic pe durata timpului specificat.
    • La final, metoda cook ar trebui să afișeze cu print() (docs) șirul "Your food is cooked!"
  • Creează un obiect cuptor cu microunde numit a_microwave_oven folosind metoda new() a fabricii microwave_oven_factory.
  • Apelează metoda cook() a obiectului a_microwave_oven, pentru 1 secundă.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# 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
___
Editează și rulează codul