这是一个晦涩的问题,但是在Scala的字符串内插中循环的最佳方法是什么?例如,如果您想这样做
html"""<ul>
${
for (todoItem <- todoList) {
html"""<li>TODO: ${todoItem}</li>"""
}
}
</ul>"""
我看不出任何简单的方法来累积内部html类,以便字符串插值器可以使用它。我唯一能想到的是
html"""<ul>
${
var htmlList=List.empty[Html]
for (todoItem <- todoList) {
htmlList :+ html"""<li>TODO: ${todoItem}</li>"""
}
htmlList
}
</ul>"""
并在我的自定义html插值器中添加对此的支持
无论您是否在字符串插值中工作都没有任何区别。实际上,这就是字符串插值的要点:在代码块中,您可以使用该语言的所有功能和特性,就像在任何其他块中一样。
具有字符串输出的样本,最多从列表的顶部获取3个元素。 @ rex-kerr的答案是正确的,但是他正在生成html元素。在我的示例中,我正在生成文本作为输出。至关重要的想法是mkString
通话。