我正在阅读Hadley Wickham的Advanced R,其中提供了一些非常好的练习.其中一个要求描述这个功能:
f1 <- function(x = {y <- 1; 2}, y = 0) {
x + y
}
f1()
Run Code Online (Sandbox Code Playgroud)
有人能帮我理解为什么它会返回3吗?我知道有一些叫做延迟评估输入参数的东西,例如另一个练习要求描述这个函数
f2 <- function(x = z) {
z <- 100
x
}
f2()
Run Code Online (Sandbox Code Playgroud)
我正确地预测为100; x获取z在函数内部计算的值,然后返回x.但我无法弄清楚会发生什么f1().
谢谢.