我一直在处理一些scala代码,并且我在以下数组之后使用_*
(args: _*
)。
有人可以告诉我它的意思吗?
答案 0 :(得分:3)
您可以定义一个带有可变数量参数的函数,例如:
def print(args: String*) {
elements.foreach(println)
}
您可以使用多个参数调用它:
print("a")
print("a","b")
或者如果你有一个序列,你可以使用列表调用它,但在这种情况下你需要使用_ *语法来绘制序列而不是将它作为单个参数传递
val l = List("a","b")
print(l: _*)
答案 1 :(得分:1)
根据scala文档,这意味着扩展vararg。 other symbols
在Java 1.5中添加了Java中的Vararg,以便在方法的参数数量未知时可以使用它。
关于vararg的一些重要观点: - 每次调用方法时都会创建匿名数组,这会增加时间复杂度。因此,如果方法调用在大多数情况下导致1或2参数,则更喜欢重载而不是使用vararg。