1

使用 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()? 还有其他理由更喜欢一种用法而不是另一种吗?

4

0 回答 0