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

标签 r oop function

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

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"

对于其他泛型,例如 printplot,这已经完成了,只需定义一个新的 plot.blabla 就可以了.

关于r - function.class() 不适用于给定的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15462472/

相关文章:

r - 按组取平均值,不包括 NA 值

java - 工厂方法模式的优势

c++ - 在 OO 编程中,继承对运行时有哪些负面影响?

algorithm - 生成随机函数(不是数字!)——如何实现

c++ - 如何在 C++ 中使用 lambda 作为词法作用域

c++ - 检索字符串中定义的字符

r - 如何估计 Gamma 距离的形状和尺度。具有特定均值和 95% 分位数?

html - 对齐行底部的元素

r - 计算列表中列的均值和标准差

php - 获取本周的时间戳