我正在研究一个自定义R6Class
,它将成为我的 R 包的主要结构。但问题在于:
setMethod('+', signature("MyClass"), function(e1, e2)1)
或者
setMethod('+', signature("R6"), function(e1, e2)1)
不工作,因为当我跑步时
a = MyClass$new()
a + a
我收到以下错误Error in a + a : non-numeric argument to binary operator
我让它工作的唯一方法就是这样
`+.MyClass` = function(e1, e2) { return (1) }
但这没有用,因为在library(MyClass)
空环境+.MyClass
中从头开始加载包时 ( ) 未定义。
那么,如何以正确的方式重载 R6 类的运算符呢?
以防万一,片段:
MyClass = R6Class(
"MyClass",
public = list(
initialize = function() {
}
),
private = list(
)
)
setMethod('+', signature("MyClass"), function(e1, e2)1)
a = MyClass$new()
a+a