0
は、私は次のように定義されたクラスがあるとしましょう:S4オブジェクトの空きスロットを許可しないようにするにはどうすればよいですか?
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)
をしかし残念ながら、それは検証機能がバイパスされるようになり、空の引数を持つように思える現在では、私は次の取得します。このタイプの入力を無効にする方法はありますか?私は見つけることができる最善の解決策は、(私には少しひねくれたらしい)コンストラクタ関数で検証ステップを入れていた