参考1: [Setの値をzipWithIndexでループする際の注意](https://coneta.jp/article/show/2701) 参考2: [Mapのループ時の注意](https://coneta.jp/article/show/2659) 上記の参考記事と似たような状況で、MapをzipWithIndexでループしたい場合にトラップがある。 Mapのクラスが`LinkedHashMap`の場合、普通にループを行えば順序は乱れない。 ```scala // 正常に動作する @for(entry <- myLinkedHashMap){ @entry._1 : @entry._2 } ``` しかしzipWithIndexを使用すると、順序が乱れてしまう。 ```scala // 正常に動作しない @for((entry, i) <- myLinkedHashMap.zipWithIndex){ @i : @entry._1 : @entry._2 } ``` この場合は上記参考記事のように`iterator`を使用すれば良い。 ```scala // 正常に動作する @for((entry, i) <- myLinkedHashMap.iterator.zipWithIndex){ @i : @entry._1 : @entry._2 } ```
2019/11/15 15:14:16

コメント (0)

あなたもコメントしてみませんか

アカウント新規作成(無料)

既にアカウントを持っている方は ログイン