요리 배우기
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로 배우는 Object-Oriented Programming
연습 안내
전자레인지 공장이 일부만 정의되어 있습니다.
- 정의의
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
___