您可以使用setValidity
来确保 a 中的每个元素list
都是某个类。
img <- setRefClass("img", fields = list(name = "character"))
imgs <- setRefClass("imgs", fields = list(imgList = "list"))
validImgs <- function(object) {
if (length(object$imgList) == 0) {
stop("`imgs` must contain at least one object of class `img`.")
}
sapply(object$imgList, function(x) {
if (class(x)[1] != "img") {
stop("Each element in `imgList` must be of class `img`")
}
})
T
}
setValidity("imgs", validImgs)
以下是imgs
验证失败的两个示例。
# An invalid image object.
imgs$new(imgList = list())
有效性方法(对象)中的错误: imgs
必须至少包含一个类对象img
。
# Another invalid image object.
imgs$new(imgList = list(1))
FUN(X[[i]], ...) 中的错误:中的每个元素都imgList
必须属于类img
这是imgs
通过验证的示例。
# A valid image object.
imgs$new(imgList = list(img$new()))
Reference class object of class "imgs"
Field "imgList":
[[1]]
Reference class object of class "img"
Field "name":
character(0)