有人可以解释一下为什么下面的代码片段会这样吗?
l <- list()
AddFn <- function(str) { l[[length(l) + 1]] <<- function() { return(str) }}
AddFn("hello")
AddFn("there")
l[[1]]() # Returns "hello" as expected
l[[2]]() # Returns "there" as expected
for (letter in letters) AddFn(letter)
l[[3]]() # Returns "z"
我希望l[[3]]()
返回“a”。我错过了什么?我的 AddFn 函数到底是做什么的?
先感谢您,
阿德里安