Это, кажется, дизайном, и избегает такой дорогой операции автоупаковки, и потому что дженерики должны быть назад совместимы с существующим байт-кодом Java.
См. эта статья и эта ошибка , например.
Вот общий случай для любого желающего использовать эти namespace()
, объект иметь переменную сохраняется за пределами for
цикл.
{% set accumulator = namespace(total=0) %}
{% for i in range(0,3) %}
{% set accumulator.total = i + accumulator.total %}
{{accumulator.total}}
{% endfor %}` {# 0 1 3 #}
{{accumulator.total}} {# 3 (accumulator.total persisted past the end of the loop) #}