gpt4 book ai didi

r - 我怎么知道一个值是否被函数隐形返回?

转载 作者:行者123 更新时间:2023-12-01 08:28:55 24 4
gpt4 key购买 nike

考虑以下函数

f1 <- function(x) {
# do something
x
}

f2 <- function(x) {
# do something
invisible(x)
}

假设我分别调用这两个函数并保存它们的值。

a <- f1(1)
b <- f2(2)

有没有办法知道 ab 是否被隐形返回?

动机是我想创建一个函数,如果一个值被不可见地返回,该函数也想不可见地返回值。

最佳答案

withVisible,它可以让你这样做:

> f3 = function(f, x){
v=withVisible(f(x))
if(v$visible){
return(v$value)
}else{
return(invisible(v$value))
}
}
> f3(f1,1)
[1] 1
> f3(f2,1)

一旦你有了 ab 就没有办法了,因为 identical(a,b)是的。您只能在表达式上调用 withVisible。除非发生了什么懒惰或 promise 。

关于r - 我怎么知道一个值是否被函数隐形返回?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25867560/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com