如何定义几个多态构造函数和函数,如
function Add( x, y : Integer ) : Integer; begin Add := x + y end; function Add( s, t : String ) : String; begin Add := Concat( s, t ) end; begin Writeln(Add(1, 2)); Writeln(Add('Hello, ', 'World!')); end.
我只能通过案例决定来做到这一点吗
A<-setRefClass(Class = "A"
,fields = list(var1="character")
,methods = list(setFields=A.setFields
,initialize=function(var1) {
if(isClass(var1,"B"))
.self$var1<-as.character(var1$getFields("var1"))
else{
.self$var1<-as.character(var1)
}
.self
})
)
如何将函数式编程与面向对象编程相结合。因此,如果我调用函数 getFields(vecB),其中 vecB 是一个向量或对象列表 B。返回应该是每个对象的值?
B.getFields<-function(...,values){ vars<-mget(names(.refClassDef@fieldClasses), envir = attr(.self, ".xData")) if(missing(values)) return(vars) if(length(vars)==1) return(vars[[1]]) return(vars[names(vars) %in% values]) } B<-setRefClass(Class = "B" ,fields = list(var1 = "character") )
如何调试例如从 A 类初始化的函数?我试过
A$trace("initialize") a<-A$new("ABC") initial<-a$initialize trace(initial,browser,where=A)
但它不起作用。