正确实施S3-方法:什么时候应该使用省略号?(Correct implementation of a

2019-09-28 19:56发布

我意识到使用S3的阶级结构的好处。 有没有该变体使用任何的建议:

  1. fun.class1 <- function(x, ...)
  2. fun.class2 <- function(x)

看来,他们总是工作都...

重复的例子:

fun.default <- function(x) {
  print("default")
  return(x)
}
fun.class1 <- function(x, ...) {
  print("class1 ellipsis")
  res <- x[y]
  return(res)
}
fun.class2 <- function(x) {
  print("class2 only x")
  res <- x[y]
  return(res)
}
my_fun <- function(x) {
  res <- UseMethod("fun")
  return(res)
}

x <- structure(c(1, 2), class = c("numeric", "class1"))
y <- 1
my_fun(x)
# [1] "class1 ellipsis"
# [1] 1
x <- structure(c(1, 2), class = c("numeric", "class2"))
y <- 1
my_fun(x)
# [1] "class1 ellipsis"
# [1] 1
文章来源: Correct implementation of a S3-method: When should I use ellipsis?
标签: r class