开始使用免费开始使用

学做菜

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 面向对象编程

查看课程

练习说明

已经为您部分定义了一个微波炉工厂。

  • 更新定义中的 public 元素,加入一个 cook 方法。
    • cook 方法是一个函数。
    • 它应包含一个名为 time_seconds 的参数,用于表示加热时间。
    • cook 方法体中,应将 time_seconds 传给 Sys.sleep()文档),该函数会在指定时间内不执行任何操作。
    • 最后,cook 方法应使用 print()文档)打印字符串 "Your food is cooked!"
  • 使用 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
___
编辑并运行代码