首页 > TAG信息列表 > order-of-evaluation

Java表达式中子表达式的评估顺序

我有以下代码片段: int x=2,y=3; if ( (y == x++) | (x < ++y) ) // rest of code 我知道在C中你被教导不要依赖子表达式的评估顺序,因为它根本不保证是任何顺序. 所以这段代码会出错,并且条件中表达式产生的布尔值不能保证为真(例如,y可以在第一次相等性测试中计算之前递增).由于

python – 赋值的右侧是否总是在赋值之前进行求值?

这是一段代码片段. x = {} x[1] = len(x) print x {1: 0} 这个定义得很好吗?也就是说,x == {1:1}可以吗? 因为我记得C ’98中的等效程序(如果我们使用std :: map)具有未定义的行为.使用VS编译器和G编译时,程序的输出是不同的.解决方法:正如我在评论中提到的,这个测试用例可以简化为

php – 如何评估“$foo = 5 \u0026\u0026 $bar = 15”,为什么不是错误?

假设我们得到了一个简单的代码: // $foo and $bar aren't defined before $foo = 5 && $bar = 15; // var_dump() // $foo is (bool) TRUE // $bar is (int) 15 所以我认为它的工作方式如下: $foo = (5 && ($bar = 15)) 但在我看来应该是: $foo = ((5 && $bar) = 15) // shou

python – 测试布尔等价性时的评估顺序

我刚刚遇到以下内容并对Python的行为感到好奇: >>> x = 1 >>> x in range(2) True >>> type(x in range(2)) <type 'bool'> >>> x in range(2) == True False >>> x in range(2) == False False >>> (x in range(2)) ==