从省略号中提取参数值而不评估其他参数

Extract value of argument from ellipsis without evaluating other arguments

在函数中,如何从函数中提取参数的值 省略号,不计算省略号中的任何其他参数?

具体来说,我如何从下面的调用中将此函数的主体修改为 return "get me"

foo <- function(...) {
    if (hasArg(bar)) {
        list(...)[["bar"]]
    }
}

foo(bar = paste("get", "me"), baz = oops)
#> Error in foo(bar = paste("get", "me"), baz = oops): object 'oops' not found

您可以捕获调用并自己显式评估参数

foo <- function(...) {
  if (hasArg(bar)) {
    eval.parent(match.call()[["bar"]])
  }
}

foo(bar = paste("get", "me"), baz = oops)
# [1] "get me"