思った以上に詰まる事項。
scalaテンプレート上で拡張for文を使いつつループ変数も使いたい場合。
- 失敗例
@{var i = 0} @for(obj <- list) { <li>@{i} : @{obj.name}</li> @{i = i + 1} <!-- iが見つからない --> }
iはスコープ外なので、コンパイルエラー。
@{var i = 0 for(obj <- list) { <li>{i} : {obj.name}</li> i = i + 1 } }
コンパイルは通るけど何も出力されない。
- 解決方法
zipWithIndexを使う。
@for((obj,i) <- list.zipWithIndex) { <li>@{i} : @{obj.name}</li> }