мне было интересно, если это возможно, использовать Эталонные классы подкласса функцию в R. Например, следующийКак подкласс функции в R?
> CustomFunction <- setRefClass("CustomFunction", contains = "function")
> foo <- CustomFunction()
> foo()
NULL
работает нормально (не выдаст ошибку), но как я могу настроить поведение (т.е. за исключением возврата NULL
)? Как определить аргументы функции?
Я также попытался
> setMethod("(",
> signature(x = "CustomFunction"),
> function(...) {
> "Hello!" # A function that always returns "Hello!"
> }
>)
Error in genericForPrimitive(f) :
methods may not be defined for primitive function ‘(’ in this version of R
, но это не похоже на работу.
Я надеялся, что возможность подкласса функции означает, что я могу реализовать пользовательское поведение до и после вызова функций. Например. для функций, которые автоматически регистрируют выражение вызова каждый раз, когда он вызывается (для целей аудита), или для создания функций, которые автоматически выдает ошибку, если возвращается NULL
и т. д. и т. д.