获取 Play 中当前循环的索引! 2 Scala 模板

2024-04-03

游戏中! 1、可以在循环中获取当前索引,代码如下:

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

Play2 中有类似的功能吗?

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

同样的问题_isLast and _isFirst.

ps: 这个问题 https://stackoverflow.com/questions/12251504/play2-template-incrementing非常相似,但解决方案意味着修改代码以返回Tuple (item, index)而不仅仅是一个列表item.


Yes, zipWithIndex is built-in幸运的是,还有更优雅的使用方式:

@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 条件(Int) and 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>
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

获取 Play 中当前循环的索引! 2 Scala 模板 的相关文章

  • 正确使用 Scala 特征和 case 对象

    为了掌握 Scala 类和特征的窍门 这里有一个简单的例子 我想定义一个指定各种操作的类 可以通过多种方式实现 我可以从以下开始 sealed trait Operations def add def multiply 例如 我可能会用一个
  • 在运行时将 scala 3 代码从字符串解析为 Scala 3 AST

    我的目标是将 Scala 3 代码作为字符串获取 并在运行时将其解析为 Scala 3 的抽象语法树 在此过程中 如果代码存在编译错误 我应该将其作为某些异常的一部分 更大的目标是如果 scala 代码有效 则最终得到 Expr T 并通过
  • 如何将环境变量传递给 Jenkins 中的 sbt 测试构建步骤?

    在我的 scala 测试中 我通过以下方式读取了环境变量sys props getOrElse cassandra test host DEFAULT CASSANDRA TEST HOST 测试通过 Jenkins 运行 我添加了一个Bu
  • scala 2.9.1 中 Set4 的奇怪行为?

    从 2 8 1 迁移到 2 9 1 发现了有趣的事情 试图在控制台中写这个 gt gt import collection immutable Set Set4 gt gt new Set4 Int 1 2 3 4 它给 java lang
  • 如何关闭 Netty 库调试输出?

    我正在使用 Netty 通过 Ning async HTTPlibrary http www ning com code 2010 03 introducing nings asynchronous http client library
  • 如何在集合中进行隐式转换?

    假设我有一个隐式转换 implicit def aToB a A B 如何让这种隐式转换适用于列表的元素 如果我有 val listOfA List A 我有一个接受 B 列表的函数 是否可以让 Scala 将所有元素从 A 隐式转换为 B
  • Scala 中的通配符导入对于增量编译是否不好?

    在 Scala 中 从增量编译器 sbt Eclipse 中的 sbt IntelliJ 的功效和速度的角度来看 使用通配符导入是否不好 它是否会对这些增量编译器在发生更改时决定重新编译内容的方式产生不利影响 例如 如果对于一个新班级X 我
  • 递归调用不在尾部位置

    假设我定义了以下函数 final def myFunc T list List T List T list match case h t gt h myFunc t case gt Nil 当我添加 tailrec 注释时 编译器给出以下错
  • Scalaz7 中的“序列”在哪里

    我正在学习 Scalaz 并且我有一个已经使用 Scalaz7 的项目 下列的这个问题 https stackoverflow com questions 2569014 convert a list of options to an op
  • Scala 中的“Prolog 风格”:与过程代码混合?

    继续Scala 中的 prolog 风格 是什么 https stackoverflow com questions 73611934 what is prolog style in scala 我想在 Scala 3 中结合逻辑推理和过程
  • 如何在 sbt 中检测 JavaFX 运行时 jar

    我想做的是定义javaHome一开始 要么来自环境变量 要么来自默认的固定字符串 然后 稍后 我会使用该字符串 这是我尝试过的 javaHome Some file Library Java JavaVirtualMachines jdk1
  • 如何将tools.jar添加为sbt中的“动态依赖项”。是否可以?

    我需要在我的项目中使用tools jar 但是将其打包在jar中没有多大意义 因为用户已经拥有它 那么 是否可以将其用作 动态依赖项 意思是 我希望我的代码compile通过使用tools jar文件发现于my JAVA HOME 但我不希
  • Scala 相当于 F# 中的 |> 或 Clojure 中的 ->>

    在 Scala 中 当我有这个表达式时 f1 f2 f3 p 有没有一种方法可以让我使用类似的东西 F p gt f3 gt f2 gt f1 还是 Clojure gt gt p f3 f2 f1 Scala 中没有相当于 F 的管道运算
  • 如何从投影类型推断正确的类型参数?

    我在让 Scala 从类型投影推断正确的类型时遇到一些麻烦 考虑以下 trait Foo type X trait Bar extends Foo type X String def baz F lt Foo x F X Unit 然后以下
  • 如何测试 sbt 解析器

    在我的本地计算机上 我有一个常春藤缓存 该缓存已通过处理多个项目而被填充 图书馆X使用解析器加载Y在项目中A 同一个图书馆X项目中使用的B 解析这个库没有问题 因为它在我的本地缓存中 当我的一位同事加载项目时B他得到了图书馆的错误X无法解决
  • 修改 Spark RDD foreach 内的集合

    我试图在迭代 RDD 的元素时向映射添加元素 我没有收到任何错误 但修改没有发生 直接添加或迭代其他集合一切正常 scala gt val myMap new collection mutable HashMap String String
  • Scala 函数变体和重写

    我在理解重载时方法的差异时遇到了一些问题 虽然由于返回类型的协方差 这可以完美地工作 class Bla class Fasel extends Bla trait Test A def tester Bla new Bla class F
  • Scala 泛型 - 为什么我无法在泛型类中创建参数化对象?

    我目前正在学习scala 为什么此代码不起作用 class GenClass T var d T var elems List T Nil def dosom x T var y new T y 我得到 错误 需要类类型 但找到了 T 代替
  • 将 HTML 渲染(流式传输)到窗格中

    我的程序同时生成结果 我想在每个结果进入 swing 线程后立即将其附加到一个窗格 该窗格将呈现结果的 html 片段 如下所示 ol class result type a li class foo result li ol
  • 如何设置 IntelliJ Idea Scala 项目来识别本地 Ivy2 缓存?

    您可能知道 新版本的 SBT 0 11 旨在维护公共库缓存 ivy2 cache而不是复制项目目录中的完整依赖项集 但是 IntelliJ Idea 我使用 SBT 插件生成 Idea 项目 默认似乎忽略了公共缓存 只看到放在项目目录下的库

随机推荐