Предположим, я хочу создать метод для класса, который я создал, но у меня нет доступа к коду исходной функции - я просто хочу построить поверх него.Просто, чтобы привести простой пример, который на самом деле ничего не делает:
x1<-1
class(x1)<-c("myclass",class(x1))
print.myclass<-function(x) {
x<-paste0(x,"foobar")
print(x)
}
print(x1)
Если я пытаюсь запустить последнюю строку, она бросает функцию в цикл, и R в конце концов падает.Решение, которое я нашел, состояло в том, чтобы добавить в функцию строку, которая удаляет новое имя класса из x
перед передачей его исходной функции:
print.myclass<-function(x) {x<-paste0(x,"foobar"); class(x)<-class(x)[-1]; print(x)}
Есть ли лучший / лучший способ сделать это