Как оценивается утверждение if в freemarker?
Я пытаюсь понять, как freemarker оценивает оператор if с несколькими условиями, например:
<#if person?? && person.phone?has_content && person.phone != "11">
do something
</#if>
Если человек?? возвращает false будет ли freemarker по-прежнему оценивать остальную часть оператора или он просто вернет false для всего оператора? Я пытаюсь понять, если человек.phone is null будет ли это если оператор выдает ошибку, когда он пытается оценить последнее условие в операторе if? Я старался сделать его как можно более чистым вместо того, чтобы гнездить кучу если заявления.
Спасибо!
1 ответ:
В Java логические операторы
&&
и||
замкнуты, то есть они ничего не вычисляют после оператора, если им это не нужно.В приведенном примере, если значение
person
равноfalse
, то остальные условия оцениваться не будут.Этот ответ дает хороший пример
Кроме того, последний пост в этой теме форума говорит конкретно о freemarker, поддерживающем логические операторы короткого замыкания