我只是想知道是否有辦法強制函數只接受某些數據類型,而不必在函數內檢查它;或者,這是不可能的,因爲R的類型檢查是在運行時完成的(與編譯期間完成類型檢查的Java等編程語言相反)?強制特定數據類型作爲函數的參數
例如,在Java中,必須指定一個數據類型:
class t2 {
public int addone (int n) {
return n+1;
}
}
在R,類似的功能可能是
addone <- function(n)
{
return(n+1)
}
但如果一個矢量被提供,載體將(顯然)被退回。如果你只想要一個整數被接受,然後是做有函數內的一個條件的唯一途徑,沿
addone <- function(n)
{
if(is.vector(n) && length(n)==1)
{
return(n+1)
} else
{
return ("You must enter a single integer")
}
}
致謝線,
克里斯
作爲代碼樣式點,在沒有標量數的情況下,您可能想拋出一個錯誤(使用'stop'或'stopifnot')或給出警告(使用'warning')不僅僅是返回一個字符串。 –