是否有一种快速而肮脏的方法来测试实例是否来自引用类?
标准 R 对象测试产生以下结果 - 但似乎没有专门标记引用类。
classy <- setRefClass('classy',
fields = list(
count = 'numeric'
),
methods = list(
initialize = function( data=NULL ) {
.self$data <<- data
}
)
)
instance <- classy$new() # instantiation
isS4(instance) # TRUE
mode(instance) # "S4"
typeof(instance) # "S4"
class(instance) # [1] "classy" attr(,"package") [1] ".GlobalEnv"
dput(instance) # new("classy", .xData = <environment>)
str(instance) #
# Reference class 'classy' [package ".GlobalEnv"] with 1 fields
# $ count: num(0)
# and 13 methods, of which 1 are possibly relevant:
# initialize
最佳答案
尝试这个:
inherits(instance, "envRefClass")
# should return [1] TRUE
这可以在
help(ReferenceClasses)
的“继承”部分找到。 .我怀疑约翰钱伯斯可能会反对称其为“肮脏的”。Apropos Hadley 的评论,
is
记录的行为与 inherits
大致相同但具有识别条件继承的额外能力:is(instance, "envRefClass")
#TRUE
关于引用类的 R 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13297841/