lift的SiteMap(entries:_*)中的冒号、下划线和星号是什么意思?

StackOverflow https://stackoverflow.com/questions/1124099

  •  13-09-2019
  •  | 
  •  

我在学 斯卡拉举起 与此同时,我陷入了理解用于初始化的语法上 网站地图 在 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 参数的具体含义是什么?我看到这个值 条目 是菜单列表。是什么 冒号、下划线、星号?起初我以为这是列表上的方法,但我找不到这样的定义......

有帮助吗?

解决方案

好吧,经过我的同事向我提起,他在 Scala 编程 书,我在我的副本中进行了搜索,发现它在 8.8 重复参数. 。(虽然搜索时需要在冒号和下划线之间加空格 :-/ )有一句话可以解释为:

...在数组参数后附加一个冒号和一个 _* 符号,像这样: scala> echo(arr: _*)

这个符号告诉编译器传递每个元素 arr 作为它自己的论点 echo, ,而不是将其全部作为单个参数。

我找到了 此处提供的描述 更有帮助。

所以 x: _*喜欢 告诉编译器处理的类型声明 x 作为 重复参数 (又名可变长度参数列表 - 可变参数).

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top