使用 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
说明如下:
通常“NextMethod”只与一个参数“generic”一起使用
就性能而言,调用NextMethod("generic")
速度是否比NextMethod()
? 还有其他理由更喜欢一种用法而不是另一种吗?