繁体   English   中英

什么是:_ *以及它如何在Scala中实现?

[英]What is :_* and How it implement in Scala?

我知道的:

scala> def fx(s: String *) = s.foreach(println)
fx: (s: String*)Unit

scala> val lst = List("1","2","3")
lst: List[java.lang.String] = List(1, 2, 3)

scala> fx(lst:_*)
1
2
3

我想知道的是什么:

  1. 我该如何实现:_* 按地图?
  2. 有没有其他方法可以取代它?
  3. 如何:_ *在Scala中定义?

谢谢

向编译器指示你已经提供了一系列元素只是一个语法糖,没有其它的“实现”。 有关更多信息,请参阅Scala语言规范 (第6.6节,第78页)

对于采用变量参数的方法:_*表示您希望将集合的成员作为变量参数传递。

以上对应的varargs示例:

scala> fx("a", "b", "c")
a
b
c

你无法实现 - 它是一种语言功能。 它并不意味着在调用varargs方法之外的任何事情。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM