使用S3对象系统,在通用方法中,您可以使用NextMethod()
函数委托类层次结构中的下一个方法。当Wickham在http://adv-r.had.co.nz/S3.html描述这个系统时,他在他的例子中没有任何参数地使用NextMethod()
:
baz <- function(x) UseMethod("baz", x)
baz.C <- function(x) c("C", NextMethod())
我也总是在我自己的代码中使用NextMethod()
而没有参数。
我刚注意到[.Date
使用了一个显式参数:
> `[.Date`
function (x, ..., drop = TRUE)
{
cl <- oldClass(x)
class(x) <- NULL
val <- NextMethod("[")
class(val) <- cl
val
}
?NextMethod
的文档说明如下:
通常&#39; NextMethod&#39;仅与一个参数一起使用,&#39; generic&#39;
就性能而言,调用NextMethod("generic")
的速度要快于NextMethod()
吗?有没有其他理由更喜欢一种用法而不是另一种用法?