1. Învăţa
  2. /
  3. Courses
  4. /
  5. R における S3 と R6 を使ったオブジェクト指向プログラミング

Connected

exercise

クローンの逆襲 (1)

R6 オブジェクトは environment と同様に参照によるコピー動作を行います。つまり、<- 代入で R6 オブジェクトをコピーすると、一方のオブジェクトでの変更がコピーにも反映されます。

a_reference_copy <- an_r6_object

R6 オブジェクトには、自動生成される clone() メソッドがあり、値によるコピーを作成できます。これにより、あるコピーでの変更が他のコピーに影響しません。

a_value <- an_r6_object$clone()

Instrucţiuni

100 XP

ワークスペースには、電子レンジのファクトリー microwave_oven_factory が定義済みです。

  • MicrowaveOven オブジェクトを作成し、a_microwave_oven に代入します。
  • <- 代入を使って、a_microwave_oven を assigned_microwave_oven という変数にコピーします。
  • a_microwave_oven の clone() メソッドを使って、cloned_microwave_oven という変数にコピーを作成します。
  • a_microwave_oven の power_level_watts フィールドを 400 に変更します。
  • a_microwave_oven と assigned_microwave_oven の power_level_watts フィールドが identical() であることを確認します(docs)。
  • a_microwave_oven と cloned_microwave_oven の power_level_watts フィールドが identical() ではないことを確認します(docs)。