scala - lift站点地图中冒号、下划线和星号的含义是什么(条目 :_*)?

标签 scala lift

我正在学习Scalalift与此同时,我陷入了理解用于初始化 SiteMap 的语法上。在 Boot.scala 中:

 val entries = Menu(Loc("Home", "/", "Home")) :: 
       Menu(Loc("Foo", "/badger", "Foo")) ::
       Menu(Loc("Directory Foo", "/something/foo", "Directory Foo")) :: Nil 
 LiftRules.setSiteMap(SiteMap(entries:_*))

SiteMap 参数的具体含义是什么? 我看到值 entries 是菜单列表。什么是冒号、下划线、星号? 起初我以为这是List上的一个方法,但我找不到这样的定义......

最佳答案

好的,经过我的同事向我提及,他在 Programming in Scala 中遇到了这个 secret 咒语。书中,我在我的副本中进行了搜索,发现它在第 8.8 节重复参数中进行了描述。 (虽然搜索时需要冒号和下划线之间有空格:-/)有一句话解释为:

... append the array argument with a colon and an _* symbol, like this: scala> echo(arr: _*)

This notation tells the compiler to pass each element of arr as its own argument to echo, rather than all of it as a single argument.

我找到了description offered here更有帮助。

因此,x: _*就像一个类型声明,告诉编译器将x视为重复参数 (又名可变长度参数列表 - vararg)。

关于scala - lift站点地图中冒号、下划线和星号的含义是什么(条目 :_*)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1124099/

相关文章:

scala - 为什么 Numeric 的行为与 Ordered 不同?

斯卡拉/电梯 : How do I write unit tests that test a snippet's response to different parameters

scala - 处理容器停止/重新加载事件

scala - 这是在 Lift Framework 中处理类似 URL 的 RESTful 的正确方法吗?

scala - 如何在运行时使用 quill 定义表名

scala - 如何从我的 SBT 任务中调用另一个任务?

java - 基于Java DataFrame去除重复行

scala - 密封类的 list 实例上的模式匹配

database - 如果您没有网络编程经验,学习 Lift 的最佳方法是什么?

scala - Lift Mapper 中的 LowerCase Like 语句