[英]R - evaluating return() in parent environment
我需要一个“内部”函数来返回它,就像它是父函数一样。
例:
some_fn <- function() {
inside_fn <- function() {
eval.parent(return("I wish"))
}
inside_fn()
return("I wish not")
}
some_fn()
## [1] "I wish not"
将stop()
与on.exit()
可...
some_fn_2 <- function() {
on.exit(return("Well, this works"))
inside_fn <- function() {
eval.parent(return("I wish"))
stop()
}
inside_fn()
return("I wish not")
}
some_fn_2()
[1] "Well, this works"
...但是有点骇人听闻,我想知道是否有更干净的方法可以做到这一点。 我知道这并不完全简单; 这意味着将忽略调用堆栈的一部分,但是,亲爱的社区,我还是想知道您的想法。 :)
callCC
可以突破嵌套调用:
callCC(function(k) {
inside_fn <- function() {
k("I wish")
}
inside_fn()
return("I wish not")
})
## [1] "I wish"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.