为数组和原子向量定义自定义打印方法

时间:2018-02-18 20:01:41

标签: r r-s3

我想为数组定义一个不同的打印方法,但是我担心我不了解S3调度。如果我明确地调用print(x),则会调用我的自定义打印方法,但如果我只是在控制台上键入x,则不会调用它。但是,如果我定义自定义S3类,则调用适当的print方法。

如果我尝试为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时,实际执行打印的功能是什么?

1 个答案:

答案 0 :(得分:0)

您需要在扩展结构(包)中的 var xhr = new XMLHttpRequest(); xhr.open("GET", link, true); xhr.send(); xhr.send(); xhr.onreadystatechange = function() { if(this.readyState == this.HEADERS_RECEIVED) { var contentLenght = xhr.getResponseHeader("Content-Lenght") console.log(contentLenght ) if(contentLenght=="0") { doThing() } } }; (请参阅here)中定义S3方法,如下所示:

NAMESPACE

我建议您使用export(print.array) S3method(print, array) 创建“套餐”(只能轻松包含devtools功能),您会找到一些优秀资源here