Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在R中,如何从对象本身内部检查内存中是否存在对象?_R_Oop - Fatal编程技术网

在R中,如何从对象本身内部检查内存中是否存在对象?

在R中,如何从对象本身内部检查内存中是否存在对象?,r,oop,R,Oop,我在几个单独的案例中遇到了这个问题,我想听听你的意见。在R中,对象可以被删除或覆盖,但如果它们使用Rcpp库,它们将继续执行它们所做的操作 例如,使用websocket包连接到websocket时: ws<-WebSocket$new(paste0(gate,"/?v=6&encoding=json"),autoConnect=F) ws$onMessage(function(event) { print(event) }) ws$connect() wsr中的对象没有名称。

我在几个单独的案例中遇到了这个问题,我想听听你的意见。在R中,对象可以被删除或覆盖,但如果它们使用Rcpp库,它们将继续执行它们所做的操作

例如,使用websocket包连接到websocket时:

ws<-WebSocket$new(paste0(gate,"/?v=6&encoding=json"),autoConnect=F)
ws$onMessage(function(event) {
  print(event)
})
ws$connect()

wsr中的对象没有名称。名称指向对象,但对象存在时完全不知道其名称。由于R进行延迟复制,许多名称可能同时指向同一对象。有些东西,比如匿名函数,永远也不会有名字。好的对象应该在R中进行自我清理,对象没有名称。名称指向对象,但对象存在时完全不知道其名称。由于R进行延迟复制,许多名称可能同时指向同一对象。有些东西,比如匿名函数,永远也不会有名字。好的物体应该在它们自己之后清理干净
BumpUp<-function(.self){
  .self$iter<-.self$iter+1
  message("Valued bumped up to ",.self$iter)
  if(.self$iter<10){
    later::later(~.self$bump(),delay=1)
  }
}
MakeTestObject<-setRefClass("testobject",fields=list(iter="numeric"),methods=list(bump=BumpUp))

testobj<-MakeTestObject(iter=0)
testobj$bump()

rm(testobj)