callGeneric
位于 methods
包(package)。 说明
对 callGeneric
的调用只能出现在方法定义中。然后它会调用当前的通用函数。该调用的值是 callGeneric
的值。虽然可以从任何方法调用它,但它很有用并且通常用于组泛型函数的方法中。
用法
callGeneric(...)
参数
... |
(可选)函数下次调用时的参数。 如果对 |
细节
当前泛型函数的名称和包存储在方法定义对象的环境中。查找该名称并调用相应的函数。
不向 callGeneric
传递任何参数会导致使用当前参数调用泛型函数的语句更精确如下。当前调用中丢失的参数仍然丢失(请记住,"missing"
是方法签名中的有效类)。对于原始调用中出现的正式参数(例如 x
),生成的调用中存在相当于 x = x
的相应参数。实际上,这意味着泛型函数看到相同的实际参数,但参数仅计算一次。
使用不带参数的 callGeneric
很容易产生无限递归,除非已在当前方法中修改签名中的参数之一以便选择不同的方法。
值
新调用返回的值。
例子
## the method for group generic function Ops
## for signature( e1="structure", e2="vector")
function (e1, e2)
{
value <- callGeneric(e1@.Data, e2)
if (length(value) == length(e1)) {
e1@.Data <- value
e1
}
else value
}
## For more examples
## Not run:
showMethods("Ops", includeDefs = TRUE)
## End(Not run)
参考
Chambers, John M. (2016) Extending R, Chapman & Hall. (Chapters 9 and 10.)
Chambers, John M. (2008) Software for Data Analysis: Programming with R Springer. (Section 10.4 for some details.)
也可以看看
GroupGenericFunctions
有关组通用函数的其他信息; Methods_Details 用于方法分派的一般行为
相关用法
- R canCoerce 可以将对象强制为某个 S4 类吗?
- R className 类名包含对应的包
- R cbind2 按列或行组合两个对象
- R classesToAM 计算类定义的超类的邻接矩阵
- R as 强制对象属于某个类
- R language-class 表示未评估语言对象的类
- R BasicClasses 基本数据类型对应的类
- R findClass 查找类定义
- R setOldClass 注册旧式 (S3) 类和继承
- R ReferenceClasses 具有按引用处理的字段的对象(OOP 样式)
- R MethodsList 方法列表对象
- R setGroupGeneric 创建函数的组通用版本
- R StructureClasses 基本结构对应的类
- R showMethods 显示指定函数或类的所有方法
- R getMethod 获取或测试方法的定义
- R slot 正式类对象中的槽
- R S4groupGeneric S4组通用函数
- R methodUtilities 用于方法和 S-Plus 兼容性的实用函数
- R getClass 获取类定义
- R evalSource 使用源文件中的函数定义,无需重新安装包
- R is 对象是来自类吗?
- R isSealedMethod 检查密封方法或类
- R GenericFunctions 管理通用函数的工具
- R dotsMethods 在方法签名中使用...
- R S3Part 包含 S3 类的 S4 类
注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Call the Current Generic Function from a Method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。