我今天偶然写了一些代码,当Eclipse没有对我大喊大叫时,我感到很惊讶.代码对结构相等运算符(==)的双重使用类似于下面的if(a==b==c)结构.
public class tripleEqual {
public static void main(String[] args) {
boolean[] a = { true, false };
boolean[] b = { true, false };
boolean[] c = { true, false };
for (int aDex = 0; aDex < 2; aDex++) {
for (int bDex = 0; bDex < 2; bDex++) {
for (int cDex = 0; cDex < 2; cDex++) {
if (a[aDex] == b[bDex] == c[cDex]) {
System.out.printf("Got a==b==c with %d %d %d\n", aDex, …Run Code Online (Sandbox Code Playgroud) 我正在尝试根据配置负载编写灵活的查询逻辑,例如:
{
"test": "( fieldA == fieldB == fieldC )"
}
Run Code Online (Sandbox Code Playgroud)
当我的应用程序用文本数据替换 'fieldA'、'fieldB' 和 'fieldC' 值时,结果始终为 false。这显然与我混淆了 javascript 运行比较的方式有关(它必须与数据类型和数学排序有关),但是谁能用一个简单的字母数字值示例来解释这一点?
例如 'John Smith' == 'John Smith' == 'John Smith' 总是假的;