在R5参考类中定义类方法和类变量

| 我想知道在R5参考类中定义类方法和类变量的正确方法。 这是一个例子:
> # define R5 class XX
> # member variable: ma
> # member method: mfa
> XX <- setRefClass(\"XX\",
+   fields = list(ma = \"character\"),
+   methods = list(
+     mfa = function() return(paste(ma, \"*\"))
+     ))
> 
> XX
Generator object for class \"XX\":

Class fields:

Name:         ma
Class: character

 Class Methods:  
    \"callSuper\", \"copy\", \"export\", \"field\", \"getClass\", \"getRefClass\", \"import\", \"initFields\", 
\"mfa\"


 Reference Superclasses:  
    \"envRefClass\"

> # create an instance of XX
> x <- XX$new(ma=\"ma\")
> 
> # call member method refering to the member variable.
> x$mfa()
[1] \"ma *\"
> 
> # here, I define *class* variable
> XX$cc <- \"cc\"

> # contents of XX
> ls(XX)
[1] \"cc\"        \"className\" \"def\"       \"methods\"   \"new\"      

> # here, I define member method referring to the class var.
> XX$methods(mfc = function() {
+   return(XX$cc)
+ })

> # it does work.
> x$mfc()
[1] \"cc\"
XX$cc <- \"cc\"
的行为就像the2ѭ是XX的类变量一样,但是我不确定这是否是正确的方法。 例如,XX $ def <-\“ hoge \”可能会破坏XX类生成器。 因此,我想知道是否存在定义类变量和方法的标准方法。 提前致谢。     
已邀请:
关于类变量的“标准”,不存在这样的标准。参考类是R的一项新功能,并且在某种程度上参考对象的官方文档中没有记录OO的某些方面,因此可以放心地认为它尚未标准化。 至于是否会出现这样的标准,我对此表示怀疑。类变量实际上只是伪命名空间中的易失性全局变量,通常依赖于外部状态不是R的处理方式。引用类的存在已经是很大的让步,以此来提高性能。 但是,正如您指出的那样,您所做的工作确实可以工作。 R是成年人同意的语言,它不会试图阻止您引入混乱,后果自负。     

要回复问题请先登录注册