복붙노트

[SCALA] 재생의 전류 루프의 인덱스를 가져 오기! 2 스칼라 템플릿

SCALA

재생의 전류 루프의 인덱스를 가져 오기! 2 스칼라 템플릿

플레이에! 1, 다음과 같은 코드로, 루프 내부에서 현재의 인덱스를 얻을 수 있었다 :

#{list items:myItems, as: 'item'}
    <li>Item ${item_index} is ${item}</li>
#{/list}

그런 일을 할 수 마찬가지로 play2에 상응 있나요?

@for(item <- myItems) {
    <li>Item ??? is @item</li>
}

_isLast 및 _isFirst에 대한 같은 질문입니다.

추신 :이 질문은 매우 유사하지만,이 솔루션은 대신 항목의 단지리스트의 튜플 (항목, 인덱스)을 반환하는 코드를 수정하는 암시.

해결법

  1. ==============================

    1.예, zipWithIndex가 내장되어 기능은 다행히도을 사용하는 더 우아한 방법이있다 :

    예, zipWithIndex가 내장되어 기능은 다행히도을 사용하는 더 우아한 방법이있다 :

    @for((item, index) <- myItems.zipWithIndex) {
        <li>Item @index is @item</li>
    }
    

    인덱스는 그냥 현재 표시된 인덱스에 1을 추가 한 대신 0에서 시작하려는 그렇다면, 0을 기반으로합니다 :

    <li>Item @{index+1} is @item</li>
    

    PS : 다른 질문에 응답 -로 (아니, 암시 적 인덱스, _isFirst, _isLast 속성, 어쨌든 당신이 목록의 압축 지수 (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>
    }
    
  2. ==============================

    2.링크 된 문제의 답은 당신이 원하는 무엇을 기본적으로. zipWithIndex는 서열 [(T, INT)]에 (a 서열 [T]이다) 목록 변환 :

    링크 된 문제의 답은 당신이 원하는 무엇을 기본적으로. zipWithIndex는 서열 [(T, INT)]에 (a 서열 [T]이다) 목록 변환 :

    @list.zipWithIndex.foreach{case (item, index) =>
      <li>Item @index is @item</li>
    }
    
  3. from https://stackoverflow.com/questions/14608334/getting-the-index-of-the-current-loop-in-play-2-scala-template by cc-by-sa and MIT license