我目前正在重新开发我创建的 BASIC(字节码解释器),但无法决定是否要包含一个eval
函数。我怀疑它的用处。
我可以想到一个功能的 2 种用途eval
:
- 它似乎是为计算器应用程序量身定做的。但我真诚地认为,真正的开发人员宁愿自己编写代码。
- 当要求用户提供一些数字时,它将允许输入公式。可能很方便。虽然这听起来不错,但我不记得曾经见过任何提供此类功能的 InputBox。
那么我的问题是:
eval
作为通用编程语言(如 BASIC)的一部分,有哪些实际用途?
搜索这个论坛,我发现了 S.Lott关于eval
函数的这个观点(尽管是在 Python 中)。
我什至应该费心调查 的用处eval
吗?
使用 eval 很弱,这显然不是一个坏习惯。
1.违反“软件基本原则”。您的来源不是可执行文件的总和。除了您的来源之外,还有 eval 的参数,必须清楚地理解。因此,它是不得已的工具。
2.通常是设计不慎的标志。动态构建的动态源代码很少有充分的理由。几乎任何事情都可以通过委托和其他 OO 设计技术来完成。
3.它导致小段代码的动态编译相对较慢。可以通过使用更好的设计模式来避免的开销。