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

Connected

Cvičení

Útok klonů (1)

R6 objekty se chovají stejně jako prostředí – pracují s kopírováním odkazem. To znamená, že pokud zkopíruješ R6 objekt pomocí přiřazení <-, změny v jednom objektu se projeví i ve všech jeho kopiích.

a_reference_copy <- an_r6_object

R6 objekty mají automaticky generovanou metodu clone(), která vytvoří kopii hodnotou – změny v jedné kopii tedy neovlivní ostatní.

a_value <- an_r6_object$clone()

Pokyny

100 XP

V tvém pracovním prostoru je předdefinovaná továrna na mikrovlnné trouby jako microwave_oven_factory.

  • Vytvoř objekt MicrowaveOven a přiřaď ho do proměnné a_microwave_oven.
  • Zkopíruj mikrovlnnou troubu do proměnné assigned_microwave_oven pomocí přiřazení <-.
  • Zkopíruj mikrovlnnou troubu do proměnné cloned_microwave_oven pomocí metody clone() objektu a_microwave_oven.
  • Změň pole power_level_watts objektu a_microwave_oven na hodnotu 400.
  • Ověř, že pole power_level_watts objektů a_microwave_oven a assigned_microwave_oven jsou identical() (dokumentace).
  • Ověř, že pole power_level_watts objektů a_microwave_oven a cloned_microwave_oven nejsou identical() (dokumentace).