首页 > 解决方案 > 在创建函数时将函数参数默认值设置为变量值

问题描述

我可以在创建时将参数的默认值设置为变量的值来创建函数吗?

Something like,
a=1
fn = function(arg1 = a) {
  print (arg1+1)
}

fn会显示

function(arg1 = 1) {
  print (arg1+1)
}

标签: rfunction

解决方案


功能帮助bquote。这是我发现对我有用的东西。

它对我来说并不直截了当,但它确实有效。

a=1
fn <- eval(bquote( function(arg1 = .(a)) {
    print (arg1+1)
} ))
fn
fn(3)

eval(bquote())并且.(a)是重点。

我找到了方法,但我认为我没有完全理解它。因此,任何人都可以帮助我了解它是如何工作的,我很乐意将其作为答案。


推荐阅读