建立 S3 方法(1)
單就泛型函式本身來說,它不會做任何事。要讓它發揮作用,你需要建立方法。方法其實就是一般函式,但需滿足兩個條件:
- 方法名稱必須是
generic.class這種形式。 - 方法的簽章——也就是傳入方法的引數——必須包含泛型的簽章。
語法如下:
generic.class <- function(some, arguments, ...) {
# Do something
}
本練習屬於課程
在 R 中使用 S3 與 R6 的物件導向程式設計
練習說明
泛型 get_n_elements() 函式已經在你的工作環境中定義。
- 輸入它的名字(不加括號)來看看它的運作方式。
- 撰寫一個 S3 方法,用來計算
data.frame物件的元素數量。- 函式名稱應該是泛型名稱,接著一個
.,再接輸入物件的類別名稱。 - 輸入引數應為
x與...。 - 函式本體只需一行,回傳 data frame 的元素數量(列數乘上欄數)。
- 函式名稱應該是泛型名稱,接著一個
- 對
sleep(文件)資料集呼叫get_n_elements,並將結果指定給變數n_elements_sleep。 - 在主控台印出
n_elements_sleep,查看結果。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# View get_n_elements
get_n_elements
# Create a data.frame method for get_n_elements
___ <- ___
# Call the method on the sleep dataset
n_elements_sleep <- ___
# View the result
n_elements_sleep