You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言:编写包装函数时如何从父函数正确获取func参数?

R包装函数中获取父函数func参数的正确方式

你的写法本身就是正确的——R中的闭包(嵌套函数)会自动捕获并保留父函数环境中的变量,所以嵌套函数里直接调用func(x)就能正常使用父函数传入的func参数。

举个实际的例子验证:

# 定义包装函数,添加打印参数的额外功能
foo <- function(func) {
  function(x) {
    # 额外功能:打印输入的参数
    cat("当前传入的参数是:", x, "\n")
    # 调用被包装的函数
    func(x)
  }
}

# 测试:包装一个计算平方的函数
square <- function(x) x^2
wrapped_square <- foo(square)

# 调用包装后的函数
wrapped_square(3)

运行后会输出:

当前传入的参数是: 3
[1] 9

如果需要更明确地指定从父环境获取func,也可以用get("func", envir = parent.env(environment())),但这属于冗余写法,日常使用直接写func就足够清晰简洁。

内容的提问来源于stack exchange,提问作者Deeproad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 03:21:36