시작하기무료로 시작하기

요리 배우기

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 메서드를 포함하세요.
    • cook 메서드는 함수입니다.
    • 조리 시간을 나타내는 time_seconds라는 하나의 인수를 가져야 합니다.
    • cook 메서드 본문에서, time_secondsSys.sleep()(docs)에 전달하세요. 이 함수는 지정된 시간 동안 아무 작업도 하지 않습니다.
    • 마지막으로, cook 메서드는 문자열 "Your food is cooked!"print()(docs)해야 합니다.
  • microwave_oven_factorynew() 메서드를 사용해 a_microwave_oven이라는 전자레인지 객체를 생성하세요.
  • a_microwave_ovencook() 메서드를 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
___
코드 편집 및 실행