S3类的通用打印功能

时间:2017-04-22 04:07:10

标签: r generics r-package r-s3

我有一个S3课程,我正试图找出如何为它设置打印功能。

这部分很好。

group by

但是,如果我在其上运行 var listItems = new List<Item>() { new Item(){Id=1, HeaderId=1, ItemSequence =1, Value="A"}, new Item(){Id=2, HeaderId=1, ItemSequence =2, Value="B"}, new Item(){Id=3, HeaderId=2, ItemSequence =1, Value="C"}, new Item(){Id=4, HeaderId=2, ItemSequence =2, Value="D"}, new Item(){Id=5, HeaderId=2, ItemSequence =3, Value="B"} }; var lstGroup = (from item in listItems group item by item.HeaderId into gr select new { HeaderId = gr.Key, ItemSequence = 1, // it's redundant, you could remove it... ListValue = string.Join(",", gr.Select(x => x.Value).ToList()) // return "A,B",.... }).ToDictionary(x=>new {x.HeaderId,x.ItemSequence}, x=> x.ListValue); ,我会收到以下不祥的消息:

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

我尝试添加其他代码:

devtools::check()

但是,有了这个,现在似乎永远不会访问checking S3 generic/method consistency ... WARNING print: function(x, ...) print.webglobe: function(wg, ...) 而我的S3类只是打印成某种列表。

如何正确设置?

1 个答案:

答案 0 :(得分:2)

wg更改为x。方法的形式参数必须与泛型的参数匹配,因为来自泛型调用的参数将根据名称传递给方法。这就是print()无法正常工作的原因,因为wg被发送到wg而不是方法的第一个参数。