2015-09-10 2 views
-3

Я новичок в Groovy и приехал в Groovy и grails с Java.Groovy if statament

Я не могу это объяснить:

boolean boolVar = false 
if (boolVar) { 
    print "ok" 
} 

но выполнения кода запуска внутри «если» блок, гайка boolVar ложен скриншот сессии отладчика

enter image description here

+0

Я столкнулся с одной проблемой один раз, не успел расследовать, я сделал «boolVar == true» – ccheneson

+0

, это не помогает –

+0

Если '== true' не работает, это странно. Если вы находитесь в Grails, попробуйте перезагрузить сервер. – ccheneson

ответ

1

Я думаю, что скриншот немного не так как вы не имеете ничего после условия так IntelliJ выделить эту строку, но это делает не выполнить его, кажется, он идет в блок, но он не печатает в порядке, можете ли вы показать результат окна запуска?

, например, добавьте в код

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

только I start here печатается

+0

Да, но как объяснить поведение IDE? Возможно, из-за внутренних преобразований в байт-код, но я думаю, что отладчик IDE должен следовать исходному коду, введенному пользователем –

+0

. Это просто вопрос о том, как intelliJ показывает синюю линию, после выполнения инструкции синяя линия автоматически переходит к следующему выражению выполнить, в этом случае нет (потому что после блока if нет ничего, и код внутри блока не должен выполняться), поэтому вы можете рассмотреть ошибку из intelliJ, но, очевидно, оператор не выполняется и ничего не печатает, отличное условие работает как ожидалось –

0

Я не уверен, что я получаю это на 100%, вы попробовали это?

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

если (boolVar), и если (boolVar == верно) одно и то же

0

1.) Удалить все точки останова из проекта (Подвижная> Просмотр Breakpoints и удалить все точки останова)
2.) Очистите целевой каталог.
3.) Добавьте новую контрольную точку в оператор «print» и проверьте, работает ли она сейчас.

Смежные вопросы