2

我需要一些关于这段代码的帮助:

foo <- function(obj){
  "fail"
}

foo.usefull <- function(obj){
  obj$content
}

myob <- structure(list(content="sucess"), class="usefull")

foo(myob)
#[1] "fail"

什么调用foo(myob)应该返回 ist “成功”。但似乎我错过了一些东西。什么?

4

1 回答 1

8

您仍然必须注册foo为泛型函数才能foo.usefull用作泛型。有关如何执行此操作的方法,请参见这篇文章。对于您的代码:

foo <- function(x) UseMethod("foo", x)   # define generic
foo.usefull <- function(obj){
  obj$content
}
myob <- structure(list(content="sucess"), class="usefull")
foo(myob)
# [1] "sucess"

对于其他泛型,例如printplot这已经完成,并且plot.blabla马上定义一个新的作品。

于 2013-03-17T15:29:33.637 回答