我正在阅读马丁·摩根( Martin )关于参考类的注释,在幻灯片7中,他使用setMethod来定义show函数,而没有将其设置为使用setGeneric的泛型。
为什么这是允许的?是否有对所有引用类(包括show )声明为泛型的方法列表?
发布于 2013-12-17 05:26:46
show已经是一个通用函数:
> isGeneric("show")
[1] TRUE可以通过调用getGenerics获得父环境中的泛型列表。
> getGenerics()
An object of class "ObjectsWithPackage":
Object: "-" "!=" "[" "*" "/" "&" "%/%" "%%" "^" "+"
Package: "base" "base" "base" "base" "base" "base" "base" "base" "base" "base"
Object: "<" "<=" "==" ">" ">=" "|" "$" "$<-" "abs" "acos"
Package: "base" "base" "base" "base" "base" "base" "base" "base" "base" "base"
Object: "acosh" "addNextMethod" "Arith" "asin" "asinh" "atan" "atanh" "body<-"
Package: "base" "methods" "base" "base" "base" "base" "base" "base"
Object: "cbind2" "ceiling" "coerce" "coerce<-" "Compare" "Complex" "cos"
Package: "methods" "base" "methods" "methods" "methods" "base" "base"
Object: "cosh" "cummax" "cummin" "cumprod" "cumsum" "digamma" "exp" "expm1"
Package: "base" "base" "base" "base" "base" "base" "base" "base"
Object: "floor" "gamma" "initialize" "kronecker" "lgamma" "loadMethod" "log"
Package: "base" "base" "methods" "base" "base" "methods" "base"
Object: "log10" "log1p" "log2" "Logic" "Math" "Math2" "Ops" "rbind2"
Package: "base" "base" "base" "base" "base" "methods" "base" "methods"
Object: "round" "show" "sign" "signif" "sin" "sinh" "slotsFromS3" "sqrt"
Package: "base" "methods" "base" "base" "base" "base" "methods" "base"
Object: "Summary" "tan" "tanh" "trigamma" "trunc"
Package: "base" "base" "base" "base" "base" 发布于 2013-12-17 05:27:40
如果您查看?show,您会发现有一个默认的分派给showDefault。我似乎记得看到了其他方法的列表,但我目前找不到与它们的联系,所以对于你的第二个问题,我不知道。
https://stackoverflow.com/questions/20626086
复制相似问题