在R中,我们可以使用makeActiveBinding
通过提供函数来创建活动绑定:
e <- new.env()
makeActiveBinding("var",
function(x) if (missing(x)) cat("get\n") else cat("set\n"), e)
创建活动绑定后,似乎无法获得它背后的功能。
我想知道是否有可能获得活动绑定背后的功能,如下所示?
> getActiveBindingFunction("var", e)
function(x) if (missing(x)) cat("get\n") else cat("set\n"), e)
答案 0 :(得分:1)
自 R 4.0.0 起,您可以直接使用activeBindingFunction()
。它并没有真正的记录,但是足够简单!
e <- new.env()
makeActiveBinding("var",
function(x) if (missing(x)) cat("get\n") else cat("set\n"), e)
activeBindingFunction("var", e)
#> function(x) if (missing(x)) cat("get\n") else cat("set\n")
答案 1 :(得分:0)
答案前往hrbrmstr。您可以将环境强制为列表,然后访问该功能。请参见下面的代码:
e <- new.env()
makeActiveBinding("var", function(x) if (missing(x)) cat("get\n") else cat("set\n"), e)
as.list(e)$var
输出:
function(x) if (missing(x)) cat("get\n") else cat("set\n")