|
|
1
26
我知道的唯一情况(除了“我有这个字符串,我想执行它”)是动态处理局部和全局变量。Ruby有获取局部变量和全局变量名称的方法,但缺少基于这些名称获取或设置其值的方法。唯一的办法就是用
任何其他用途几乎肯定是错误的。我不是大师,也不能明确地说没有其他人,但我见过的每一个其他用例都有人说“你需要评估这个”,我找到了一个没有的解决方案。
注意,我说的是
顺便说一下,这里。Ruby也有
|
|
|
2
16
什么时候是合理的?如果没有合理的选择,我会说。我能想到一个我想不出替代方案的用途:irb,如果你挖得足够深(到
这对我来说似乎很合理——在这种情况下,在被要求执行代码的那一刻之前,你根本不知道要执行什么代码。一些动态和互动的东西似乎符合这个要求。 |
|
|
3
14
eval之所以存在是因为当你需要它的时候,当你真的需要它的时候,没有替代品。毕竟,通过创造性的方法调度,您可以做的事情只有这么多,而且在某些时候,您需要执行任意代码。 仅仅因为一种语言有一个可能是危险的特性并不意味着它天生就是一件坏事。当一种语言假定知道的比它的使用者多时,就有麻烦了。 我认为,当你发现一种编程语言没有危险时,你就会发现它不是很有用。 评估何时合理?用实用主义的话来说,当你说是的时候。如果是你的程序,而你是程序员,你可以设置参数。 |
|
|
4
6
有一个非常重要的用例
定义以下内容也很有用:
|
|
|
5
5
IMO主要针对特定领域的语言。 |
|
6
4
评估是一种工具,它既不是天生的善也不是恶。只要你确信它是你想要完成的事情的正确工具,它就是合理的。 |
|
|
7
2
像eval这样的工具是在运行时对代码进行评估,而不是在“编译”时。您知道启动Ruby时的代码是什么吗?那么你可能不需要评估。您的代码是否在运行时生成代码?那你可能需要评估一下。
" Programatically filling in a letrec in Scheme. Macros or eval? “这是我在Scheme中发布的一个关于eval的问题,在Scheme中使用eval是不可避免的。 |
|
|
8
2
一般来说
值得注意的是,在ruby中
|
|
|
9
1
gem specification would look like this
请注意,gempec文件只是创建一个新对象,但不分配它,也不将它发送到任何地方。
试图
|
|
|
10
0
eval的一个用途是将另一种语言编译为ruby:
|
|
|
11
0
我使用一个实现Ruby的3D建模软件来编写自定义文本宏。在该软件中,我们可以访问以下形式的模型数据:
因此,对于36英寸高的机柜,我可以访问高度并将其值转换为英尺,如下所示:
主要的问题是,该软件中的对象没有唯一的标识符,只有一个称为对象的标识符
|
|
|
Hipster1206 · 分析bash中有空间的单个字符串参数 8 年前 |
|
|
Mr. Boy · 是否可能动态重新加载JS脚本文件? 8 年前 |
|
|
R. H. · matlab函数中避免求值 8 年前 |
|
|
Cleb · 如何为差分进化添加几个约束? 8 年前 |
|
|
Sergey Onishchenko · 将表达式计算为列名 8 年前 |
|
|
ARAT · 计算字符串和空单元格 8 年前 |
|
|
Doc_failure · 在节点服务器中使用eval是一个坏主意吗? 8 年前 |