1. Nauka
  2. /
  3. Kursy
  4. /
  5. Programowanie obiektowe z S3 i R6 w R

Connected

ćwiczenie

Atak klonów (2)

Jeśli obiekt R6 zawiera inny obiekt R6 w jednym lub kilku swoich polach, to domyślnie metoda clone() kopiuje te pola R6 przez referencję. Aby skopiować je przez wartość, należy wywołać metodę clone() z argumentem deep = TRUE.

a_deep_copy <- an_r6_object$clone(deep = TRUE)

Instrukcje

100 XP

W twoim środowisku pracy jest już zdefiniowana klasa R6 PowerPlug, opisująca wtyczkę sieciową kuchenki mikrofalowej. Klasa MicrowaveOven została zaktualizowana i zawiera teraz obiekt PowerPlug.

  • Utwórz obiekt klasy MicrowaveOven i przypisz go do zmiennej a_microwave_oven.
  • Skopiuj kuchenkę do zmiennej cloned_microwave_oven, używając metody clone() bez żadnych argumentów.
  • Skopiuj kuchenkę do zmiennej deep_cloned_microwave_oven, używając metody clone() z argumentem deep = TRUE.
  • Zmień pole type w polu power_plug obiektu a_microwave_oven na "British".
  • Sprawdź, czy pola power_plug$type obiektów a_microwave_oven i cloned_microwave_oven są identyczne.
  • Sprawdź, czy pola power_plug$type obiektów a_microwave_oven i deep_cloned_microwave_oven różnią się od siebie.