一个对象的类决定了它会如何被一个 泛型函数处理。相反,一个泛型函数 通过参数类的特异参数来完成特定工作或者事务的。 如果参数缺乏任何类属性, 或者在该问题中有一个不能被任何泛型函数处理的类, 泛型函数会有一种默认的处理方式。
下面的一个例子使这个问题清晰。类机制为用户提供了为特定问题设计和编写
泛型函数的便利。
在其他泛型函数中,plot() 用于图形化显示
对象,summary() 用于各种类型的概述分析,
以及 anova() 用于比较
统计模型。
能以特定方式处理类的泛型函数的数目非常的庞大。
例如,可以在非常时髦的类对象
"data.frame" 中使用的函数有
[ [[<- any as.matrix
[<- mean plot summary
可以用函数 methods() 得到当前对某个类对象
可用的泛型函数列表:
> methods(class="data.frame")
相反,一个泛型函数可以处理的类同样很多。
例如,plot() 有默认的方法和变量
处理对象类 "data.frame",
"density","factor",等等。一个完整的列表同样可以通过
函数 methods() 得到:
> methods(plot)
读者可以参考 完整描述这一机制的正式文档。