Zacznij terazZacznij za darmo

Nauka gotowania

Trzeci argument funkcji R6Class() nosi nazwę public i przechowuje funkcjonalność obiektu dostępną dla użytkownika. Powinien być listą, w której każdy element ma swoją nazwę.

Element public klasy R6 zawiera funkcjonalność dostępną dla użytkownika. Zazwyczaj składa się wyłącznie z funkcji.

Zaktualizowany wzorzec tworzenia generatora klas R6 wygląda następująco:

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

To ćwiczenie jest częścią kursu

Programowanie obiektowe z S3 i R6 w R

Zobacz kurs

Instrukcje do ćwiczenia

Fabryka kuchenki mikrofalowej została częściowo zdefiniowana.

  • Zaktualizuj element public definicji, dodając metodę cook.
    • Metoda cook jest funkcją.
    • Powinna przyjmować jeden argument o nazwie time_seconds, określający czas gotowania.
    • W ciele metody cook przekaż time_seconds do Sys.sleep() (dokumentacja), która wstrzymuje działanie na podany czas.
    • Na koniec metoda cook powinna wywołać print() (dokumentacja) z ciągiem znaków "Your food is cooked!".
  • Utwórz obiekt kuchenki mikrofalowej o nazwie a_microwave_oven, korzystając z metody new() fabryki microwave_oven_factory.
  • Wywołaj metodę cook() obiektu a_microwave_oven z czasem gotowania 1 sekundy.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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
___
Edytuj i uruchom kod