【问题标题】:Generic print function for S3 classS3 类的通用打印功能
【发布时间】:2017-04-22 04:07:10
【问题描述】:

我有一个 S3 类,我正在尝试研究如何为其设置打印功能。

这部分很好。

print.webglobe <- function(wg, ...){
  "it worked!"
}

但是,如果我在上面运行devtools::check(),我会收到以下不祥的消息:

checking S3 generic/method consistency ... WARNING
print:
  function(x, ...)
print.webglobe:
  function(wg, ...)

我尝试添加附加代码:

print <- function(wg, ...){
  UseMethod("webglobe", wg)
}

但是,有了这个礼物,print.webglobe() 似乎永远不会被访问,我的 S3 类只是打印为某种列表。

如何正确设置?

【问题讨论】:

  • wg 更改为x。方法的形式参数必须与泛型的参数相匹配。这就是为什么打印没有按您预期的方式工作的原因。
  • @Thomas:就是这样。您能否将您的评论作为答案发表?

标签: r generics r-package r-s3


【解决方案1】:

wg 更改为x。方法的形式参数必须与泛型的参数匹配,因为来自泛型调用的参数基于名称传递给方法。这就是为什么 print() 没有按您预期的方式工作的原因,因为 wg 被发送到 wg 而不是方法的第一个参数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-10
    • 2018-09-09
    • 1970-01-01
    • 2014-11-29
    • 2022-01-01
    相关资源
    最近更新 更多