[問題] S3 generic function 的傳遞
[問題類型]: 程式諮詢
[軟體熟悉度]: 使用者(已經有用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
09/09 10:44, 1F
→
09/09 11:29, , 2F
09/09 11:29, 2F
R_Language 近期熱門文章
PTT數位生活區 即時熱門文章