这段代码行在做什么?这是另一种表示法的语法糖吗?
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)
是对带有参数<
的方法的方法调用。ul
foobar
该foo: _*
语法用于将集合传递给可变参数方法。
总结一下:
props
是一些集合createItem
,然后将结果ul
方法HtmlType
-typed<
成员html_<^
因此,本质上,它只是构建了某种无序列表。
以下是项目 github 页面关于这些方法命名的简要说明:
标签和标签属性是命名空间的;< 下的标签(因为 <.div 看起来类似于 ),以及 ^ 下的属性(因为需要简洁的东西,并且您通常有许多写在新行上的属性看起来都指向目标标签)。