學做菜
傳給 R6Class() 的第三個引數名為 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
___