2
可以說,我想使一個類「myclass」的兩個插槽A和B.擁有自定義類驗證爲添加插槽
現在我想一個validObject功能,以確保A和B是相同的長度
same_length <- function(object){
if(length([email protected])!=length([email protected])) {
"vectors are not the same length"
} else TRUE
}
setClass("myClass", representation(A="numeric", B="numeric"),
validity=same_length)
我看到初始化當一個函數的地方,將確保類是有效的:
setMethod("initialize", "myClass", function(.Object, ...){
value <- callNextMethod()
validObject(value)
value
})
,如果我嘗試
將發送一個錯誤newObj < - 新( 「MyClass的」,A = C(1,2,3),B = C(1,2))
但是,如果我做
newObj <- new("myClass")
[email protected] <- c(1,2,3)
[email protected] <- c(1,2)
不引發錯誤。一旦新的插槽分配無法驗證,我如何才能讓它發出錯誤?
你能解釋一下在這種情況下使用setGeneric()和setMethod的區別嗎? – LostLin
@Ellipsis ...試圖澄清setGeneric與setMethod –
啊好吧感謝澄清! – LostLin