我需要一些关于这段代码的帮助:
foo <- function(obj){
"fail"
}
foo.usefull <- function(obj){
obj$content
}
myob <- structure(list(content="sucess"), class="usefull")
foo(myob)
#[1] "fail"
foo(myob)
的调用应该返回“成功”。但似乎我错过了什么。什么?
最佳答案
您仍然需要将 foo
注册为通用函数,以便能够将 foo.usefull
作为通用函数使用。参见 this post如何做到这一点。对于您的代码:
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"
对于其他泛型,例如 print
或 plot
,这已经完成了,只需定义一个新的 plot.blabla
就可以了.
关于r - function.class() 不适用于给定的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15462472/