从同一对象内调用S4函数

时间:2019-05-13 09:02:52

标签: r function oop s4

我做了这个(简化的)S4课:

setClass(
  Class = "WOW", 
  representation = representation(
    x = 'numeric',
    y = 'numeric'
  )

)

setGeneric("run", function(.Object, x, y, do) 
  standardGeneric("run") )

setGeneric("add", function(.Object, x, y, do) 
  standardGeneric("add") )


setMethod("add", signature("WOW"), function(.Object, x, y ) {
  return(x + y)
})


setMethod("run", signature("WOW"), function(.Object, x, y, do) {
  if (do == 'ADD') {
    print('ADDING')
    # --> RUN wow function
  }
})

我基本上想让用户调用run函数并通过两个输入数字(dox告诉它要做什么(通过y参数) )。因此,如果用户说“ ADD”,则应调用add函数并将结果返回到run函数。我知道这可以通过self或在python和java中完成,但是如何在R中完成呢?

我发现调用add(.Object, x, y)可以正常工作,但是我找不到任何引用说明这是可接受的方式。

(很显然,我可以在一行代码中添加数字,因此我不需要一个函数,但是我的应用程序要复杂得多,需要一个函数来保持整洁)

0 个答案:

没有答案