我想为数组定义一个不同的打印方法,但是我担心我不了解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
时,实际执行打印的功能是什么?
答案 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。