Подтвердить что ты не робот

Скорость: делать что-то, кроме последней итерации цикла

В скорости, я хочу сделать что-то другое в последнем цикле.

Какая правильная идиома?

RELATED: Последняя итерация расширенного цикла в java

4b9b3361

Ответ 1

Вы можете использовать тест, если вы находитесь в последней итерации::

#foreach( $item in $list )
    $item.text #if( $foreach.hasNext ), #end
#end

Ответ 2

@soulcheck answer - это то, что вам нужно, но имейте в виду, что переменная $foreach доступна только в версии 1.7, если вы используете более раннюю версию, которую вы можете использовать:

#foreach( $item in $list )
    $item.text #if( $velocityHasNext ), #end
#end

Однако переменная $velocityHasNext устарела в версиях 1.7 и удалена в 2.0 в пользу $foreach.hasNext.

Ответ 3

Идиома, которую я использую, заключается в том, чтобы сохранить дополнительный текст, который будет добавлен, если цикл не завершится.

#set($sep = "")    
#foreach($item in $list)
 $sep$item
 #set($sep = ", ")
#end

Ответ 4

Это работало для меня в более старой версии Velocity

#if($velocityCount < $list.size()), #end