MulaiMulai sekarang secara gratis

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 adalah bagian dari kursus

Pemrograman Berorientasi Objek dengan S3 dan R6 di R

Lihat Kursus

Petunjuk latihan

Sebuah pabrik microwave oven telah didefinisikan sebagian untuk Anda.

  • Perbarui elemen public dari definisi tersebut untuk menyertakan metode cook.
    • Metode cook adalah sebuah fungsi.
    • Metode ini harus memiliki satu argumen bernama time_seconds untuk menyatakan durasi memasak.
    • Di dalam body metode cook, Anda harus meneruskan time_seconds ke Sys.sleep() (docs), yang tidak melakukan apa pun selama waktu yang ditentukan.
    • Terakhir, metode cook harus melakukan print() (docs) terhadap string "Your food is cooked!"
  • Buat sebuah objek microwave oven bernama a_microwave_oven menggunakan metode new() milik microwave_oven_factory.
  • Panggil metode cook() milik a_microwave_oven selama 1 detik.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

# 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
___
Edit dan Jalankan Kode