簡體   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