我想为数组定义不同的打印方法,但恐怕我不了解 S3 调度。如果我显式调用 print(x),则会调用我的自定义打印方法,但如果我只是在控制台上键入 x,则不会调用我的自定义打印方法。但是,如果我定义了一个自定义 S3 类,则会调用相应的打印方法。
如果我尝试为 print.numeric 定义一个方法,也会发生类似的事情
这是一个最小的例子:
print.array <- function(x, ...) cat("Hi!\n")
x <- array(1:8, c(2,2,2) )
print(x) # the print method defined above is called
# Hi!
x # the print method defined above is NOT called
有没有人对正在发生的事情有任何见解?x
当只是在控制台上评估时,什么函数实际上正在打印?