我所知道的:
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
我想知道的事情:
- 如何实施
:_*
?按地图?- 有没有其他方法可以取代它?
- 如何:_ *在Scala中定义?
醇>
谢谢
答案 0 :(得分:8)
向编译器指示你已经提供了一系列元素只是一个语法糖,没有其它的“实现”。有关更多信息,请参阅Scala Language Specification(§6.6,第78页)
答案 1 :(得分:1)
对于采用变量参数:_*
的方法,意味着您希望将集合的成员作为变量参数传递。
以上相应的varargs示例:
scala> fx("a", "b", "c")
a
b
c
您无法实施 - 这是一种语言功能。它并不意味着在调用varargs方法之外的任何事情。