Intellij idea 常规中频稳压器

Intellij idea 常规中频稳压器,intellij-idea,groovy,Intellij Idea,Groovy,我是Groovy新手,从Java开始接触Groovy和grails 我无法解释这一点: boolean boolVar = false if (boolVar) { print "ok" } 但代码执行在块内部运行,nut boolVar为false 调试器会话屏幕截图 我不确定我是否100%得到了,你试过这个吗 boolean boolVar = false if (!boolVar) { println "ok" } ifboolVar和ifboolVar==true是相同的我认为屏

我是Groovy新手,从Java开始接触Groovy和grails

我无法解释这一点:

boolean boolVar = false
if (boolVar) {
  print "ok"
}
但代码执行在块内部运行,nut boolVar为false 调试器会话屏幕截图


我不确定我是否100%得到了,你试过这个吗

boolean boolVar = false
if (!boolVar) {
println "ok"
}

ifboolVar和ifboolVar==true是相同的

我认为屏幕截图有点错误,因为在条件之后您没有任何东西,因此intelliJ突出显示这一行,但它不执行它,它似乎转到块,但它不打印ok,您能显示运行窗口的结果吗

例如,将其添加到代码中

boolean boolVar = false
def output = "I start here"
if (boolVar) {
    output += "\noops in loop"
    println "ok"
}
print output

只有我从这里开始才被打印出来。从项目运行中删除所有断点->查看断点并删除所有断点 2.清除目标目录。
3.在print语句中添加一个新断点,然后检查它现在是否工作。

我曾经遇到过同样的问题,没有时间去调查,我已经做了一个boolVar==trues同样的,如果==trues不工作也没有用,这很奇怪。如果您在Grails中,请尝试重新启动服务器。下面您可以看到Grails中的问题,但这里只是一个groovy脚本文件来测试这个问题。它是否真的可以打印,或者这只是一个混乱的调试器?是的,但是如何解释IDE的行为?可能是由于字节码的内部转换,但我认为IDE调试器必须遵循用户输入的原始代码编辑只是intelliJ如何显示蓝线的问题,在执行一条语句后,蓝线会自动转到下一条要执行的语句,在这种情况下,因为IF块中没有任何东西,并且块内的代码不应该执行,所以您可以考虑来自因特利利的错误,但是显然语句没有执行,并且不打印任何东西,Groovy条件按预期工作。