Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala动态创建xhtml元素_Scala_Map_Loops_Indexing - Fatal编程技术网

Scala动态创建xhtml元素

Scala动态创建xhtml元素,scala,map,loops,indexing,Scala,Map,Loops,Indexing,给定一个字符串列表 val www = List("http://bloomberg.com", "http://marketwatch.com"); 我想动态生成 <span id="span1">http://bloomberg.com</span> <span id="span2">http://marketwatch.com</span> def genSpan(web: String) = <span id="span1">

给定一个字符串列表

val www = List("http://bloomberg.com", "http://marketwatch.com");
我想动态生成

<span id="span1">http://bloomberg.com</span>
<span id="span2">http://marketwatch.com</span>

def genSpan(web: String) = <span id="span1"> + web + </span>;

www.map(genSpan); // How can I pass the loop index?
http://bloomberg.com
http://marketwatch.com
def genSpan(web:String)=+web+;
www.map(genSpan);//如何传递循环索引?
由于1和2是循环索引,如何使用Scala映射函数生成ID(span1、span2)?
或者,唯一的方法是用于理解吗?

最简单的方法是使用
zipWithIndex
,它将列表转换为元组列表
(值、索引)
。就你而言

def genSpan(web: String, id: Int) = {
  <span id={ "span%d".format(id) }> { web } </span>
}
www.zipWithIndex.map(x => genSpan(x._1,x._2+1))
def genSpan(web:String,id:Int)={
{web}
}
www.zipWithIndex.map(x=>genSpan(x._1,x._2+1))

请注意,索引
x.\u 2
从零开始,但您希望从一开始,因此我在对
genSpan
的调用中添加了一个。还请注意,您可以使用Scala代码设置属性,方法是将Scala代码包装在
{}

中。最简单的方法是使用
zipWithIndex
将列表转换为元组列表
(值、索引)
。就你而言

def genSpan(web: String, id: Int) = {
  <span id={ "span%d".format(id) }> { web } </span>
}
www.zipWithIndex.map(x => genSpan(x._1,x._2+1))
def genSpan(web:String,id:Int)={
{web}
}
www.zipWithIndex.map(x=>genSpan(x._1,x._2+1))

请注意,索引
x.\u 2
从零开始,但您希望从一开始,因此我在对
genSpan
的调用中添加了一个。还请注意,您可以使用Scala代码设置属性,方法是将Scala代码包装在
{}

中,也需要包装“web”+{web}+谢谢@波尔图莱特-是的,哇!现在修好了。(顺便说一下,没有
+
——XML块中的所有内容都是输出的。)还需要包装“web”+{web}+谢谢@波尔图莱特-是的,哇!现在修好了。(顺便说一句,没有
+
——XML块中的所有内容都是输出的。)