Grails 当不应该通过if语句时,通过该语句的字符串比较
我将excel工作表的值与从数据库返回的记录值进行比较,其中一条记录在if语句失败时通过if语句 if语句如下所示:Grails 当不应该通过if语句时,通过该语句的字符串比较,grails,groovy,Grails,Groovy,我将excel工作表的值与从数据库返回的记录值进行比较,其中一条记录在if语句失败时通过if语句 if语句如下所示: if (record.value.equals(cellVal) == false) { record.value = cellVal record.modifyUser = userId //dataService.updateManualEntry(record) println "UPDATING $
if (record.value.equals(cellVal) == false)
{
record.value = cellVal
record.modifyUser = userId
//dataService.updateManualEntry(record)
println "UPDATING ${record.value.equals(cellVal)}"
println "record value: ${record.value}"
updatedCount++
}else{
println "NOT UPDATING [ [ ${record.value.length()} ] + [${cellVal.length()}]"
}
}
println显示println更新${record.value.equalscellVal}的值计算为true,在这种情况下,我不理解它为什么要通过if语句。此外,字符串的长度为0
我能再看一眼,找出为什么真值会通过这个if语句吗?在将值更改为匹配后,会出现打印错误。这里:
(true == false) ⇒ false
record.value = cellVal
您已在if块内将record.value设置为cellVal。这就是为什么println返回true。println在if语句的第1行显示true record.value=cellVal
尝试在if语句之前打印相同的值。if->record.value.EqualCellVal为false u compare false==false,自然false总是=false,因此它将通过 第二,看看你的代码 record.value=cellVal record.modifyUser=userId //dataService.updateManualEntryrecord println正在更新${record.value.equalscellVal} 在打印之前,分配record.value=cellVal。
当然,因为它将打印为true。在完成record.value=cellVal之后,您正在打印更新${record.value.equalscellVal}。在更改之前打印出来,并向我们显示它失败的具体字符串。另外,在打印的值周围加上例如“a”,以便更容易看到空格cellVal的值是多少?这是什么语言?对不起,当然。。。但是分号在哪里?Js?它被标记为grails,所以我假设它是在jvm上运行的groovy