有没有办法向 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/