作者andrew43 (apan)
看板R_Language
标题[问题] S3 generic function 的传递
时间Mon Sep 9 09:58:03 2013
[问题类型]: 程式谘询
[软体熟悉度]: 使用者(已经有用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
1F:→ clickhere:func <- function(x, y = 200, ...) 09/09 10:44
2F:→ andrew43:改成func.default <- function(x, y=200, ...)可以,谢谢. 09/09 11:29