R中S4对象系统中"this"(如Java或C++)的等价物
What the equivalent of "this" (as in Java or C++) in S4 object system in R
现在我明白了R的S4对象系统与C++或Java有很大的不同。
不过我想问的是有没有什么类似于 S4
中的 "this"
方法在泛型上定义并在 class 上分派,而不是在 class 上。所以 this
总是被调度的对象。
.A = setClass("A", slots = c(a = "integer"))
setGeneric("foo", function(x) standardGeneric("foo"))
setMethod("foo", "A", function(x) {
x@a # 'x' is the object that `foo()` dispatches on, i.e., 'this'
})
用法:
> y = .A(a=1:5)
> foo(y)
[1] 1 2 3 4 5
现在我明白了R的S4对象系统与C++或Java有很大的不同。
不过我想问的是有没有什么类似于 S4
中的 "this"方法在泛型上定义并在 class 上分派,而不是在 class 上。所以 this
总是被调度的对象。
.A = setClass("A", slots = c(a = "integer"))
setGeneric("foo", function(x) standardGeneric("foo"))
setMethod("foo", "A", function(x) {
x@a # 'x' is the object that `foo()` dispatches on, i.e., 'this'
})
用法:
> y = .A(a=1:5)
> foo(y)
[1] 1 2 3 4 5