为什么使用分配错误?

为什么使用分配错误?

这个职位(R中的懒惰评估-赋值是否受影响?)包括一些共同点,但我不确定它能回答我的问题。

我不再使用assign当我发现apply家庭很久以前了,尽管在这种情况下,纯粹是出于优雅的原因:

names.foo <- letters
values.foo <- LETTERSfor (i in 1:length(names.foo))
  assign(names.foo[i], paste("This is: ", values.foo[i]))

可改为:

foo <- lapply(X=values.foo, FUN=function (k) paste("This is :", k))names(foo) <- names.foo

这也是为什么(http:/ran.r-project.org/doc/faq/R-FAQ.html#如何-可以-i-将字符串-转换为-a-变量_003f)R-FAQ说应该避免这种情况。

现在,我知道assign一般都不赞成。但还有其他原因我不知道?我怀疑它可能会扰乱范围或懒惰的评估,但我不确定?演示此类问题的示例代码将是很棒的。


函数式编程
浏览 528回答 3
3回答
打开App,查看更多内容
随时随地看视频慕课网APP