为什么r str更改评估

时间:2018-10-20 23:39:51

标签: r

使用str()似乎会更改评估的原因吗?

MWE:

f1 <- function(x, y = x) {
  str(y)
  x <- x + 1
  y }
 f1(1) # result is 1

f2 <- function(x, y = x) {
  x <- x + 1
  y }
 f2(1) # result is 2

为什么会这样?我尝试使用pryr库进行调试,但是看不到正在更新的引用。

1 个答案:

答案 0 :(得分:2)

懒惰评估。它与conda list的评估时间有关。在使用y = x的第一条语句之前对它进行求值。

y