r中的double NextMethod()

时间:2019-02-06 11:59:11

标签: r oop inheritance methods

我在使以下代码正常工作时遇到问题。特别是在“ ???”处应该有什么?得到结果c(4,7,1)

letter<- function()
{
  x<- numeric(0)
  class(x)<- append(class(x), "letter")
  return(x)
}


a<- function()
{
   obj<- letter()
   class(obj)<- append(class(obj),"a")
   return(obj)
}

aa<- function()
{
   obj<- a()
   class(obj)<- append(class(obj),"aa")
   return(obj)
}

met<- function(obj, ...)
{
   UseMethod("met", obj)
}

met.letter<- function(obj, ???)
{
  NextMethod(???)
}

met.a<- function(obj, ???)
{
   x<-4
   z<-1
   NextMethod(???)
}

met.aa<- function(obj, ???)
{
  y=y+1
  return(c(x,y,z))
}

aaobj<- aa()

met(aaobj, y=6)
# to return c(4,7,1)

当在当前方法中创建参数时,我不明白如何将其传递给下一个方法,并且我不想将这些参数传递给对方法的调用。

1 个答案:

答案 0 :(得分:0)

这是代码的类似于OO的版本,带有“日志输出”以指示其工作方式:

indices = [(0, 2), (0, 3), (0, 2), (1, 1), (0, 3), (0, 2)]

注意:您应该将类​​名称放在class属性的开头(而不是结尾),这样,如果调用通用方法,则将找到最专门的类方法并首先调用它。

有关详细信息,请参见http://www.stackoverflow.com/q/45175988