R中引用类的函数重载?
以下是我的尝试:R中引用类的函数重载?,r,oop,overloading,R,Oop,Overloading,以下是我的尝试: MyClass = setRefClass("MyClass", fields = c("x", "y")) MyClass$methods( myadd = function() { x + y } ) MyClass$methods( myadd = function(n) { x + y + n } ) MyClass$methods( initialize = function(xinit, yin
MyClass = setRefClass("MyClass", fields = c("x", "y"))
MyClass$methods(
myadd = function() {
x + y
}
)
MyClass$methods(
myadd = function(n) {
x + y + n
}
)
MyClass$methods(
initialize = function(xinit, yinit) {
x <<- xinit
y <<- yinit
}
)
myobj = MyClass(2, 3)
myobj$myadd()
我相信R-ish的方法是在方法中使用默认参数。比如:
MyClass = setRefClass("MyClass", fields = c("x", "y"))
MyClass$methods(
myadd = function(n=0) {
x + y + n
}
)
MyClass$methods(
initialize = function(xinit, yinit) {
x <<- xinit
y <<- yinit
}
)
冒着被称为“哈德利·威克姆粉丝”(又一次!)的风险,关于R对象系统的一个重要信息来源是哈德利的
值得一提的是,如果您确实需要实现具有复杂分派的方法,则提供了相当大的功能,但可能会以一些额外的复杂性和冗长性为代价
MyClass = setRefClass("MyClass", fields = c("x", "y"))
MyClass$methods(
myadd = function(n=0) {
x + y + n
}
)
MyClass$methods(
initialize = function(xinit, yinit) {
x <<- xinit
y <<- yinit
}
)
myobj = MyClass(2, 3)
myobj$myadd()
[1] 5
myobj$myadd(5)
[1] 10