0
说我有定义如下一类:如何禁止S4对象的空插槽?
setClass("myclass", slots = list(id="character"))
我想要的东西是这样的:ID是必需的,myclass
没有一个id是无效的对象。在目前,我得到如下:
> 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)
但不幸的是,它看起来就像空参数会导致绕过验证功能。有没有办法使这种类型的输入无效?