【发布时间】:2025-12-03 20:55:02
【问题描述】:
如何通过另一个函数在函数中返回值,请参见此处的示例:
first_try <- function() eval(return(1),parent.frame())
second_try <- function() source(textConnection("return(2)"),parent.frame())
fun1 <- function(x){
first_try()
second_try()
3
}
fun1()
# [1] 3
fun1 应该停在first_try 并返回1,如果second_try 有效,它将返回2。
这样的事情可能吗?
【问题讨论】:
-
我不确定我是否正确理解了这个问题。如果您想返回
first_try,为什么需要second_try和3。如果返回值取决于别的东西,为什么不使用if-else? -
3只是表明first_try和second_try都不起作用。实际上这个函数会被包装成一个条件,所以后面会有代码,这里缩写为3。这样更清楚吗? -
如果是这样,为什么不试试
if(a){return(1)}else if(b){return(2)}; 3;? -
这是一个可读性、编程便利性和好奇心的问题,我并没有被困在我的工作中。我有一个函数,它总是会跟随或嵌入一个返回调用,所以将返回调用放在里面对我来说是有意义的。
标签: r return eval r-environment