Ответ 1
Да, zipWithIndex
- встроенная функция, к счастью, более элегантный способ ее использования:
@for((item, index) <- myItems.zipWithIndex) {
<li>Item @index is @item</li>
}
Индекс основан на 0, поэтому, если вы хотите начать с 1 вместо 0, просто добавьте 1 к отображаемому в настоящее время индексу:
<li>Item @{index+1} is @item</li>
PS: Отвечая на ваш другой вопрос - нет, нет неявных свойств indexes
, _isFirst
, _isLast
, в любом случае вы можете написать простые условия Scala внутри цикла, основываясь на на значения zipped index (Int
) и size
списка (Int
).
@for((item, index) <- myItems.zipWithIndex) {
<div style="margin-bottom:20px;">
Item @{index+1} is @item <br>
@if(index == 0) { First element }
@if(index == myItems.size-1) { Last element }
@if(index % 2 == 0) { ODD } else { EVEN }
</div>
}