建立 S3 方法(2)
如果在泛型上找不到合適的方法,就會丟出錯誤。例如,目前 get_n_elements() 只有 data.frame 可用的方法。如果你改把矩陣傳給 get_n_elements(),就會看到錯誤。
> get_n_elements(matrix())
Error: no applicable method for 'get_n_elements' applied to an object of class "c('matrix', 'array', 'logical')"
與其為每種輸入都寫上一大堆方法,你可以建立一個處理所有「沒有特定方法」之型別的通用方法。這稱為「預設(default)」方法;它的名稱一律是 generic.default。例如,print.default()(文件)會列印任何沒有自己 print()(文件)方法的物件型別。
本練習屬於課程
在 R 中使用 S3 與 R6 的物件導向程式設計
練習說明
泛型 get_n_elements() 與其在 data.frame 上的方法已在你的工作空間中定義。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# View predefined objects
___
# Create a default method for get_n_elements
___ <- ___
# Call the method on the ability.cov dataset
n_elements_ability.cov <- ___