[問題] S3 generic function 的傳遞

看板R_Language作者 (apan)時間11年前 (2013/09/09 09:58), 編輯推噓0(002)
留言2則, 2人參與, 最新討論串1/1
[問題類型]: 程式諮詢 [軟體熟悉度]: 使用者(已經有用R 做過不少作品) [問題敘述]: 最近開始練習 S3 的物件導向語法,主要是練習 UseMethod() 和 NextMethod()。 不過我不是非常清楚在不同 function 之間怎麼傳遞變數。 詳情請見以上例子。 [程式範例]: rm(list = ls()) func <- function(x, ...) { y <- 200 UseMethod("func") } func.integer <- function(x, ...) { NextMethod("func.default") } func.default <- function(x, ...) { return(y) } func(1L) # 結果是 R 看不見 y func(1.1 : 3.1) # 結果是 R 看得見 y 我對 UseMethod() 和 NextMethod() 的使用方法或時機可能有誤, 但不知道為什麼 func(1L) 就看不見 y 了? 我已確定 func(1L) 是會跑過 func(),func.integer() 再到 func.default(), 不過 y 並沒有跟著到 func.default() 中。 如果我希望 y <- 200 仍保留在建構子中(成為建構時共享的變數), 又要怎麼改寫?有勞各位先進了,多謝。 -- http://apansharing.blogspot.com/ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.117.37.172

09/09 10:44, , 1F
func <- function(x, y = 200, ...)
09/09 10:44, 1F

09/09 11:29, , 2F
改成func.default <- function(x, y=200, ...)可以,謝謝.
09/09 11:29, 2F
文章代碼(AID): #1IBIinPJ (R_Language)
文章代碼(AID): #1IBIinPJ (R_Language)