Scala 在数组之后使用“*”表示什么?

Scala 在数组之后使用“*”表示什么?,scala,Scala,我一直在编写一些scala代码,我遇到了在数组后面使用的*,如以下参数:* 有人能告诉我它的含义吗?您可以定义一个接受可变数量参数的函数,如: def print(args: String*) { elements.foreach(println) } 您可以使用多个参数调用此函数: print("a") print("a","b") 或者,如果您有一个序列,您可以使用列表调用它,但在这种情况下,您需要使用*语法来显示序列,而不是将其作为单个参数传递 val l = List("a","

我一直在编写一些scala代码,我遇到了在数组后面使用的*,如以下参数:*


有人能告诉我它的含义吗?

您可以定义一个接受可变数量参数的函数,如:

def print(args: String*) {
  elements.foreach(println)
}
您可以使用多个参数调用此函数:

print("a")
print("a","b")
或者,如果您有一个序列,您可以使用列表调用它,但在这种情况下,您需要使用*语法来显示序列,而不是将其作为单个参数传递

val l = List("a","b")
print(l: _*)

您可以定义一个接受可变数量参数的函数,如:

def print(args: String*) {
  elements.foreach(println)
}
您可以使用多个参数调用此函数:

print("a")
print("a","b")
或者,如果您有一个序列,您可以使用列表调用它,但在这种情况下,您需要使用*语法来显示序列,而不是将其作为单个参数传递

val l = List("a","b")
print(l: _*)

根据scala文档,这意味着vararg扩展。

Java中的Vararg是在Java1.5中添加的,这样在方法的参数数量未知时可以使用它

关于vararg的一些要点:
-每次调用方法时都会创建匿名数组,这增加了时间复杂性。所以,如果方法调用在大多数情况下产生1或2个参数,则更喜欢重载而不是使用vararg

根据scala文档,这意味着vararg扩展。

Java中的Vararg是在Java1.5中添加的,这样在方法的参数数量未知时可以使用它

关于vararg的一些要点:
-每次调用方法时都会创建匿名数组,这增加了时间复杂性。所以,如果方法调用在大多数情况下产生1或2个参数,则更喜欢重载而不是使用vararg

谢谢,这很有道理谢谢,这很有道理