这段代码行在做什么?这是另一种表示法的语法糖吗?
def createItem(itemText: String) = <.li(itemText)
<.ul(props map createItem: _*) <-- this one
这段代码行在做什么?这是另一种表示法的语法糖吗?
def createItem(itemText: String) = <.li(itemText)
<.ul(props map createItem: _*) <-- this one
我假设从纯粹的句法角度来看,你觉得这行太奇怪了。
<是另一个名字奇怪的实体的成员html_<^。
<Gizmo 是HtmlTags类型,特别是它有方法li和ul,对应于标签<li>和<ul>。
因此<.ul(foobar)是对带有参数<的方法的方法调用。ulfoobar
该foo: _*语法用于将集合传递给可变参数方法。
总结一下:
props是一些集合createItem,然后将结果ul方法HtmlType-typed<成员html_<^因此,本质上,它只是构建了某种无序列表。
以下是项目 github 页面关于这些方法命名的简要说明:
标签和标签属性是命名空间的;< 下的标签(因为 <.div 看起来类似于 ),以及 ^ 下的属性(因为需要简洁的东西,并且您通常有许多写在新行上的属性看起来都指向目标标签)。