Функция печати с классом - PullRequest
2 голосов
/ 18 февраля 2020
x <- structure(1:3, foo = 42, class = "hello")

x
[1] 1 2 3
attr(,"foo")
[1] 42
attr(,"class")
[1] "hello"

Но если мы установим

print.hello <- function(x, ...){
    print(123)
}

x станет

x
[1] 123

Почему функция print.hello перезаписывает все в x?

PS I Читаю Практическое программирование с R , 10.4.1 Метод отправки

1 Ответ

2 голосов
/ 18 февраля 2020

Это не так, х остается прежним, однако печать х меняется.

> x <- structure(1:3, foo = 42, class = "hello")
> print.hello <- function(x, ...){
>   print("asffdas")
> }
> x
[1] "asffdas"
> as.numeric(x)
[1] 1 2 3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...