料理に挑戦
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
}
)
)
この演習はコースの一部です
R における S3 と R6 を使ったオブジェクト指向プログラミング
演習の手順
電子レンジのファクトリーが一部定義済みです。
- 定義の
public要素を更新して、cookメソッドを追加してください。 microwave_oven_factoryのnew()メソッドを使って、a_microwave_ovenという名前の電子レンジオブジェクトを作成してください。a_microwave_ovenのcook()メソッドを1秒で呼び出してください。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# 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
___