【发布时间】:2016-11-18 10:27:58
【问题描述】:
假设我有一个定义如下的类:
setClass("myclass", slots = list(id="character"))
我希望 id 是强制性的,而没有 id 的 myclass 是无效对象。目前,我得到以下信息:
> new("myclass")
An object of class "myclass"
Slot "id":
character(0)
我希望设置验证功能会有所帮助:
setValidity("myclass", function(object){
if(length(slot(object, "id")) == 0L){
return("You cannot do that")
}
return(TRUE)
})
> new("myclass")
An object of class "myclass"
Slot "id":
character(0)
但不幸的是,似乎有空参数会导致验证函数被绕过。有没有办法使这种类型的输入无效?
【问题讨论】: