R重载赋值运算符(`< -`)

时间:2017-04-05 14:55:56

标签: r operator-overloading operators

您好我正在尝试使用R&lt; S3的S3课程。所以我在关注https://www.r-bloggers.com/object-oriented-programming-in-r/之后遇到了问题。在类nc <- list2env(nc)中用于将对象保存在自己的环境中,我将创建包含大型数据集的对象,因此我非常喜欢指针样式。当您想要创建对象的副本(newObject<-oldObject)时会出现问题,这只会创建指向对象的指针的副本,而不是对象的副本。这是一个问题,因为如果我更改了旧对象或新对象的某些内容,则会注册相同的更改。

我在想是否可以使用我自己的函数重载<-运算符,该函数将对象复制到一个新的环境中会很棒。有谁知道怎么做?

我知道我可以用以下方式克隆环境:

newObject<- as.environment(as.list(oldObject, all.names=TRUE))

但是当我尝试重载赋值运算符时,它不起作用,即

'<-.MyClass'<-function(NOT SURE WHAT SHOULD COME HERE){ newObject<- as.environment(as.list(oldObject, all.names=TRUE)) return(newObject) }

我已经让它与其他运营商合作,例如+,*

0 个答案:

没有答案