gpt4 book ai didi

r - S3 泛型中的变量范围

转载 作者:行者123 更新时间:2023-12-01 00:52:22 24 4
gpt4 key购买 nike

我有以下片段:

y <- 1
g <- function(x) {
y <- 2
UseMethod("g")
}
g.numeric <- function(x) y
g(10)
# [1] 2

我不明白,为什么可以访问 yg.numeric <- function(x) y .据我了解,y 的范围正好在泛型 (g <- ...) 的定义范围内。 .谁能向我解释一下,这怎么可能?

最佳答案

此行为的描述可以在 ?UseMethod 中找到。帮助页面

UseMethod creates a new function call with arguments matched as they came in to the generic. Any local variables defined before the call to UseMethod are retained



因此,在调用 UseMethod 的函数中定义的任何局部变量作为局部变量传递给下一个函数。你可以看到这个
g.numeric <- function(x) ls()  #lists all variables in current environment
g(10)
# [1] "x" "y"
g.numeric(10)
# [1] "x"

关于r - S3 泛型中的变量范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30387840/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com