Tag: 评估

eval()和new Function()是一样的吗?

这两个function是在幕后做同样的事情吗? (在单个语句函数中) var evaluate = function(string) { return eval('(' + string + ')'); } var func = function(string) { return (new Function( 'return (' + string + ')' )()); } console.log(evaluate('2 + 1')); console.log(func('2 + 1'));

一个ArrayList的contains()方法如何评估对象?

说我创build一个对象,并将其添加到我的ArrayList 。 如果我然后创build具有完全相同的构造函数input的另一个对象,将contains()方法评估这两个对象是相同的? 假设构造函数不会对input做任何有趣的事情,并且存储在两个对象中的variables是相同的。 ArrayList<Thing> basket = new ArrayList<Thing>(); Thing thing = new Thing(100); basket.add(thing); Thing another = new Thing(100); basket.contains(another); // true or false? class Thing { public int value; public Thing (int x) { value = x; } equals (Thing x) { if (x.value == value) return true; return false; } } 这是如何实现class有contains()返回true […]

Python的eval()是做什么的?

在我正在阅读Python的书中,它一直使用代码eval(input('blah')) 我读了文档,我明白了,但我仍然没有看到它如何改变input()函数。 它有什么作用? 有人可以解释吗?

如何dynamic评估C#expression式?

我想做相当于: object result = Eval("1 + 3"); string now = Eval("System.DateTime.Now().ToString()") as string 继Biri的链接后 ,我得到了这个片段(修改为删除过时的方法ICodeCompiler.CreateCompiler() : private object Eval(string sExpression) { CSharpCodeProvider c = new CSharpCodeProvider(); CompilerParameters cp = new CompilerParameters(); cp.ReferencedAssemblies.Add("system.dll"); cp.CompilerOptions = "/t:library"; cp.GenerateInMemory = true; StringBuilder sb = new StringBuilder(""); sb.Append("using System;\n"); sb.Append("namespace CSCodeEvaler{ \n"); sb.Append("public class CSCodeEvaler{ \n"); sb.Append("public object EvalCode(){\n"); […]

如何评估在PHP中作为string传递的公式?

试图找出正确和安全的方式来执行math运算作为string传递。 在我的情况下,它是从图像EXIF数据中获取的值。 经过一番研究,我发现了两种做法。 首先,使用eval : function calculator1($str){ eval("\$str = $str;"); return $str; } 其次,使用create_function : function calculator2($str){ $fn = create_function("", "return ({$str});" ); return $fn(); }; 这两个示例都需要清理string以避免恶意代码执行。 有没有其他或更短的方式呢?

eval,exec和Python编译有什么区别?

我一直在研究Python代码的dynamic评估,并且遇到了eval()和compile()函数以及exec语句。 有人可以解释eval和exec之间的区别,以及compile()的不同模式如何适用?

为什么应该在Bash中避免使用eval,而应该使用什么呢?

一次又一次,我看到Bash使用eval回答堆栈溢出问题,并且为了使用这样的“邪恶”构造,答案会被打破,双关语意图。 为什么eval如此邪恶? 如果eval不能安全使用,应该用什么来代替?

评估string“3 *(4 + 2)”收益int 18

有没有一个函数的.NET框架,可以评估包含在string中的数字expression式并返回结果? 铁: string mystring = "3*(2+4)"; int result = EvaluateExpression(mystring); Console.Writeln(result); // Outputs 18 有一个标准的框架function,你可以用我的EvaluateExpression方法replace?

用C调用函数之前的参数评估顺序

在C中调用函数参数时可以假设一个评估顺序吗? 按照下面的程序,当我执行它时似乎没有特定的顺序。 #include <stdio.h> int main() { int a[] = {1, 2, 3}; int * pa; pa = &a[0]; printf("a[0] = %d\ta[1] = %d\ta[2] = %d\n",*(pa), *(pa++),*(++pa)); /* Result: a[0] = 3 a[1] = 2 a[2] = 2 */ pa = &a[0]; printf("a[0] = %d\ta[1] = %d\ta[2] = %d\n",*(pa++),*(pa),*(++pa)); /* Result: a[0] = 2 a[1] […]

Java中是否有eval()函数?

我有一个string,如下所示: String str = "4*5"; 现在我必须使用string来得到20的结果。 我知道在其他一些语言的eval()函数将这样做。 我怎样才能在Java中做到这一点?