function.class()不适用于给定的类

jak*_*b-r 2 oop r function

我需要一些这方面的帮助:

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

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

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

foo(myob)
#[1] "fail"
Run Code Online (Sandbox Code Playgroud)

什么的通话foo(myob)应该返回IST"成功".但似乎我错过了一些东西.什么?

Pau*_*tra 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"
Run Code Online (Sandbox Code Playgroud)

对于其他类似的通用print或者plot已经完成,只需要立即定义新的plot.blabla作品.

  • 使用`foo.default`,如果没有找到特定的实现,则使用默认值. (2认同)