关于 R 引用类,我真的不喜欢一件事:编写方法的顺序很重要。假设你的课程是这样的:
myclass = setRefClass("myclass",
fields = list(
x = "numeric",
y = "numeric"
))
myclass$methods(
afunc = function(i) {
message("In afunc, I just call bfunc...")
bfunc(i)
}
)
myclass$methods(
bfunc = function(i) {
message("In bfunc, I just call cfunc...")
cfunc(i)
}
)
myclass$methods(
cfunc = function(i) {
message("In cfunc, I print out the sum of i, x and y...")
message(paste("i + x + y = ", i+x+y))
}
)
myclass$methods(
initialize = function(x, y) {
x <<- x
y <<- y
}
)
然后你启动一个实例,并调用一个方法:
x = myclass(5, 6)
x$afunc(1)
你会得到一个错误:
Error in x$afunc(1) : could not find function "bfunc"
我对两件事感兴趣:
- 有没有办法解决这个麻烦?
- 这是否意味着我永远无法将一个非常长的类文件拆分为多个文件?(例如,每种方法一个文件。)