我想返回在函数中定义的所有函数。
我知道ls()可用于返回函数名称,但我需要返回原始函数主体中定义的函数列表。
例如,我的函数可能看起来像
Failed to pull container image 'uk.icr.io/hvdveer/e2t-bridge:0.1.4'
其中return(?)应该返回包含函数a,b的列表。
答案 0 :(得分:4)
通常情况下,我会分别列出所有内容以明确显示:
primary_function = function () {
a = function () 2
b = function () 3
list(a = a, b = b)
}
但是如果有很多,您可以缩写:
primary_function = function () {
a = function () 2
b = function () 3
as.list(environment())
}
(您也可以返回环境本身,而不是将其复制到列表中。)
请注意,这将返回 all 个本地符号。如果您有非功能符号,并且只想返回功能,则可以
primary_function = function () {
a = function () 2
b = function () 3
mget(lsf.str())
}
还要注意,您的代码包含错误,因为R return
中的语句不是语句,而是函数调用,它会中止当前的函数执行。因此,您需要用括号(例如return(2)
,而不是return 2
)写,并且在这里使用它们是多余的:R总是返回函数执行的最后一个值。这就是为什么我忽略了它们。我只使用return
表示提前退出。