看板 R_Language 關於我們 聯絡資訊
[問題類型]: 程式諮詢 [軟體熟悉度]: 使用者(已經有用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
clickhere:func <- function(x, y = 200, ...) 09/09 10:44
andrew43:改成func.default <- function(x, y=200, ...)可以,謝謝. 09/09 11:29