r - “通用”和“方法”之间的区别?
问题描述
我注意到 R 中的以下函数有两个略有不同的分类:
sloop::ftype(t.test)
#> [1] "S3" "generic"
sloop::ftype(t.data.frame)
#> [1] "S3" "method"
由reprex 包于 2021-04-21 创建(v1.0.0)
一个是“泛型”,一个是“方法”,但我正在努力区分这两者:我对“泛型”的理解是它是一种方法 - 具体来说,一种根据输入对象作用于输入对象的方法班级。
解决方案
一个方法实现了一个泛型(或者,在更技术的层面上,一个方法被一个泛型 via 调用UseMethod
)。
也就是说,一个通用函数调用UseMethod
; 它可能看起来像这样:
foo = function (x, ...) UseMethod('foo')
而方法是实现特定 S3 类的泛型的函数;例如:
foo.bar = function (x, ...) message('class of x is bar!')
推荐阅读
- javascript - 如何在 Reactjs 中实现这个 jquery 代码
- html - 如何让 srcset 识别图像不会在小显示器上以全尺寸显示?
- sql - 动态 Sp_Executesql 因日期时间转换错误而失败
- django - 如何创建一个查询集 order_by 并在此之后创建另一个订单来维护第一个订单的结果?
- html - 视频在 iPhone 上看起来不可见
- javascript - 如何在地图返回函数 ReactJS 中使用常量
- javascript - 从 JavaScript 中的用户代理信息获取设备名称
- go - Keep-alive:死节点检测
- arrays - 如何遍历具有不同类型的类数组并快速打印它们的属性?
- mongodb - 在 Julia 中使用 SSL 证书连接到 Mongodb