isSealedMethod
位于 methods
包(package)。 说明
这些函数检查定义时已密封的方法或类,因此无法重新定义。
用法
isSealedMethod(f, signature, fdef, where)
isSealedClass(Class, where)
参数
f |
通用函数的带引号的名称。 |
signature |
方法签名中的类名称,因为它们将提供给 |
fdef |
可选,通常被省略: |
Class |
类的引用名称。 |
where |
在哪里搜索方法或类定义。默认情况下,从对 |
细节
在里面R类和方法的实现,可以密封类或方法的定义。基本类(数字和其他类型的向量、矩阵和数组数据)是密封的。这些数据类型上的原始函数的方法也是如此。结果是程序员无法重新定义这些基本数据类型和计算的含义。更准确地说,对于仅依赖于一个数据参数的原始函数,不能为基本类指定方法。对于依赖于两个参数的函数(例如算术运算符),可以指定方法:一这些参数中的一个是基本类,但如果两者都是基本类则不是。
程序员可以通过使用 setClass
或 setMethod
的 sealed
参数来密封其他类和方法定义。
值
如果方法或类未密封(包括未定义的情况),则函数返回FALSE
; TRUE
如果是的话。
例子
## these are both TRUE
isSealedMethod("+", c("numeric", "character"))
isSealedClass("matrix")
setClass("track", slots = c(x="numeric", y="numeric"))
## but this is FALSE
isSealedClass("track")
## and so is this
isSealedClass("A Name for an undefined Class")
## and so are these, because only one of the two arguments is basic
isSealedMethod("+", c("track", "numeric"))
isSealedMethod("+", c("numeric", "track"))
参考
Chambers, John M. (2008) Software for Data Analysis: Programming with R Springer. (For the R version.)
Chambers, John M. (1998) Programming with Data Springer (For the original S4 version.)
相关用法
- R is 对象是来自类吗?
- R implicitGeneric 管理通用函数的隐式版本
- R inheritedSlotNames 从超级类继承的插槽名称
- R as 强制对象属于某个类
- R language-class 表示未评估语言对象的类
- R className 类名包含对应的包
- R BasicClasses 基本数据类型对应的类
- R callGeneric 从方法调用当前通用函数
- 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 cbind2 按列或行组合两个对象
- R GenericFunctions 管理通用函数的工具
- R dotsMethods 在方法签名中使用...
- R S3Part 包含 S3 类的 S4 类
注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Check for a Sealed Method or Class。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。