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

Connected

exercise

料理に挑戦

R6Class() の3つ目の引数は public と呼ばれ、オブジェクトのユーザー向け機能を保持します。この引数は各要素に名前が付いたリストである必要があります。

R6 クラスの public 要素には、ユーザーが利用できる機能が含まれます。通常は関数のみを含みます。

R6 クラスジェネレーターを作成する更新後のパターンは次のとおりです。

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

Instrucţiuni

100 XP

電子レンジのファクトリーが一部定義済みです。

  • 定義の public 要素を更新して、cook メソッドを追加してください。
    • cook メソッドは関数です。
    • 調理時間を表す time_seconds という1つの引数を持たせてください。
    • cook メソッドの本体では、割り当てられた時間だけ何もしない Sys.sleep()(docs)に time_seconds を渡してください。
    • 最後に、cook メソッドで文字列 "Your food is cooked!" を print()(docs)してください。
  • microwave_oven_factory の new() メソッドを使って、a_microwave_oven という名前の電子レンジオブジェクトを作成してください。
  • a_microwave_oven の cook() メソッドを1秒で呼び出してください。