r - R6 类中的静态方法

标签 r r6

有没有办法向 R6 类添加静态方法?例如,可以像这样调用的函数

MyClass$method()

而不是
myinstance <- MyClass$new()
myinstance$method()

最佳答案

我不是 R6 专家,但由于每个 R6 类都是一个环境,您可以向该环境添加任何您想要的内容。

像:

MyClass$my_static_method <- function(x) { x + 2}
MyClass$my_static_method(1)
#[1] 3

但是该方法会不适用于类的实例 :
instance1 <- MyClass$new()
instance1$my_static_method(1)
# Error: attempt to apply non-function

您应该小心类环境中的现有对象。要查看已定义的内容,请使用 ls(MyClass)

关于r - R6 类中的静态方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28916460/

相关文章:

R - 将下载的数据帧转换为 xts

c# - 在 .NET Core 2.0 Preview 1 中使用 R.NET.Community

r - 获取R公式的右侧变量

python - 在 R6 的初始化中调用 R6 类的函数

注册 R6 类的 S4 等效项,同时保留继承

r - 在 R6 类上定义括号 (`[` ) 运算符

r - 采购 R6 类时如何解释错误 "elements..... must be named"?

r - dnorm() 如何在 sapply 循环中处理分位数向量

r - 在做 glm 之前洗牌数据,然后重复 x 次

r - 使用 .onLoad() 将对象加载到 R 包中的全局环境中