Как оценивается утверждение 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, поддерживающем логические операторы короткого замыкания