lift的站点地图(条目:_*)中冒号、下划线和星号的含义是什么?
我正在学习 Scala 和 lift 同时,我一直在理解用于初始化 SiteMap:
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 是菜单列表。 什么是冒号、下划线、星号? 起初我以为这是列表上的方法,但我找不到这样的定义......
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
好吧,在我的同事向我提到之后,他在 Programming in Scala 书中遇到了这个秘密咒语,我在我的副本中进行了搜索,发现它在第 8.8 节重复参数中进行了描述。 (虽然搜索时需要在冒号和下划线之间加空格 :-/ )有一句话可以解释为:
我找到 此处提供的说明更有帮助。
因此,
x: _*
就像一个类型声明,告诉编译器将x
视为重复参数(又名可变长度参数列表 - vararg)。OK, after my colleague mentioned to me, that he encountered this secret incantation in the Programming in Scala book, I did a search in my copy and found it described in Section 8.8 Repeated parameters. (Though you need to search with space between the colon and underscore :-/ ) There is a one sentence to explain it as:
I find the description offered here more helpful.
So
x: _*
is like a type declaration that tells the compiler to treatx
as repeated parameter (aka variable-length argument list — vararg).