скорость: сделать что-нибудь, кроме как в последней итерации цикла - PullRequest
24 голосов
/ 19 ноября 2011

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

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

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

Ответы [ 4 ]

61 голосов
/ 20 ноября 2011

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

#foreach( $item in $list )
    $item.text #if( $foreach.hasNext ), #end
#end
18 голосов
/ 02 марта 2012
Ответ

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

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

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

6 голосов
/ 20 ноября 2011

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

#set($sep = "")    
#foreach($item in $list)
 $sep$item
 #set($sep = ", ")
#end
1 голос
/ 29 января 2015

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

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