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块中的所有内容都是输出的。)