Kapıyı Kapat
Bir R6 nesnesinin metotları, private$ önekiyle özel alanlarına erişebilir.
thing_factory <- R6Class(
"Thing",
private = list(
a_field = "a value",
another_field = 123
),
public = list(
do_something = function(x, y, z) {
# Özel alanlara eriş
paste(
private$a_field,
private$another_field
)
}
)
)
Bu egzersiz, kursun bir parçasıdır
R'de S3 ve R6 ile Nesne Yönelimli Programlama
Egzersiz talimatları
Senin için mikrodalga fırın fabrikası kısmen tanımlandı. Özel bir door_is_open alanı ve genel bir open_door yöntemi eklenecek şekilde güncellendi.
- Mikrodalga kapağını kapatmak için
close_door()adlı bir genel yöntem ekle.- Yöntem hiçbir argüman almamalı.
- Fonksiyonun gövdesinde
door_is_openalanınıFALSEolarak ayarla.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
# Add a close_door() method
microwave_oven_factory <- R6Class(
"MicrowaveOven",
private = list(
power_rating_watts = 800,
door_is_open = FALSE
),
public = list(
cook = function(time_seconds) {
Sys.sleep(time_seconds)
print("Your food is cooked!")
},
open_door = function() {
private$door_is_open <- TRUE
},
___ = ___
)
)