【发布时间】:2012-11-18 22:55:01
【问题描述】:
关于如何避免使用eval(parse(...))有几个问题
这引发了问题:
- 为什么要特别避免
eval(parse())? - 最重要的是,有什么危险?
- 如果代码不用于生产会有什么危险吗? (我在想,返回意外结果的任何危险。显然,如果您不小心解析的内容,就会遇到问题。但这比对
get()的马虎更危险吗?)
- 如果代码不用于生产会有什么危险吗? (我在想,返回意外结果的任何危险。显然,如果您不小心解析的内容,就会遇到问题。但这比对
【问题讨论】:
-
我不知道我是否有时间创建一个很好的例子/写一个正确的答案,但是我在这个方向上的头痛通常与
eval()有关,而不是与@987654329有关@。eval()的问题在于,它试图遵循一些基本但通常难以理解的关于计算表达式的帧的规则,当您开始以比作者原本以为...obeautifulcode.com/R/How-R-Searches-And-Finds-Stuff -
@BenBolker,这个问题似乎仍然出现在很多搜索结果中。如果您想详细说明上面的评论,我很想听听您的更多想法,因为我相信其他人也会这样做
-
@Ricardo Saporta,您似乎喜欢使用
data.table。有趣的是,我遇到了一个post,其中解释说eval在某些情况下可以比get更快,data.table