Belajar Memasak
Argumen ketiga untuk R6Class() disebut public dan memuat fungsionalitas yang dihadirkan kepada pengguna. Argumen ini harus berupa list, dengan nama untuk setiap elemennya.
Elemen public dari sebuah kelas R6 berisi fungsionalitas yang tersedia bagi pengguna. Biasanya hanya berisi fungsi-fungsi.
Pola yang diperbarui untuk membuat generator kelas R6 adalah sebagai berikut:
thing_factory <- R6Class(
"Thing",
private = list(
a_field = "a value",
another_field = 123
),
public = list(
do_something = function(x, y, z) {
# Lakukan sesuatu di sini
}
)
)
Latihan ini merupakan bagian dari kursus
Pemrograman Berorientasi Objek dengan S3 dan R6 di R
Instruksi latihan
Sebuah pabrik microwave oven telah didefinisikan sebagian untuk Anda.
- Perbarui elemen
publicdari definisi tersebut untuk menyertakan metodecook.- Metode
cookadalah sebuah fungsi. - Metode ini harus memiliki satu argumen bernama
time_secondsuntuk menyatakan durasi memasak. - Di dalam body metode
cook, Anda harus meneruskantime_secondskeSys.sleep()(docs), yang tidak melakukan apa pun selama waktu yang ditentukan. - Terakhir, metode
cookharus melakukanprint()(docs) terhadap string"Your food is cooked!"
- Metode
- Buat sebuah objek microwave oven bernama
a_microwave_ovenmenggunakan metodenew()milikmicrowave_oven_factory. - Panggil metode
cook()milika_microwave_ovenselama 1 detik.
Latihan interaktif langsung praktik
Cobalah latihan ini dengan melengkapi kode contoh ini.
# 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
___