在高级编程语言中,可以通过调用此类(对象)的实例来执行任意类的公共函数,例如,a=new Foo(); a.somePublicFunction();
如果我想在 R 中使用这种编程范式,我将编写以下代码:
setClass(Class = "Foo",
representation = representation(a="numeric")
)
Foo<-function(a=1){new("Foo",a=a)}
myFunction.Foo<-function(object){
return(object@a)
}
setGeneric("myFunction", function(object) standardGeneric("myFunction"))
setMethod("myFunction", signature = "Foo", definition = myFunction.Foo)
为什么可以myFunction
简单地覆盖myFunction<-1/3
?myFunction(obj)
如果我打电话给obj is an object of class
Foo , the interpreter should refer to
myFunction.Foo`。如何在 R 中处理这个问题?