Scala Varargs可变参数用法详细介绍和示例

大多数编程语言都为函数提供了可变长度参数迁移,Scala不是例外。它允许我们指出函数的最后一个参数是可变长度的参数。它可以重复多次。它允许我们指出函数的最后一个参数是可变长度的参数,因此它可以被重复多次。我们可以传递尽可能多的参数。这允许程序员将可变长度的参数列表传递给函数。在函数内部,声明的args类型实际上保存为数组[Datatype],例如可以声明为类型String*实际上是Array[String]。
注意 :我们将*放在最后一个参数上, 以使其可变长度。
句法 : -

def Nameoffunction(args: Int *) : Int = { s foreach println. }

以下是varargs的一些限制:
列表中的最后一个参数必须是重复参数。
def sum(a:Int, b:Int, args:Int *)
包含varargs的方法中的任何参数都没有默认值。
所有值都必须是相同的数据类型, 否则会出错。
> sum(5, 3, 1000, 2000, 3000, "一个")
错误:类型不匹配;
找到:字符串("一个")
要求:整数
在主体args内部是一个数组, 因此所有值都打包到一个数组中
示例:
//Scala program of varargs object GFG { //Driver code def main(args : Array[String]) { //Calling the function println( "Sum is: " + sum( 5 , 3 , 1000 , 2000 , 3000 )); } //declaration and definition of function def sum(a : Int, b : Int, args : Int *) : Int = { var result = a + bfor (arg < - args) { result + = arg }return result } }

输出:
Sum is: 6008

在上面的例子中,我们可以看到函数的最后一个参数是可变长度的参数。这里1000是可变长度参数。参数arg被添加到result变量中。names参数的类型是Integer。
示例:
//Scala program of varargs object GFG { //Driver code def main(args : Array[String]) {//calling of function printGeek( "Geeks" , "for" , "geeks" )}//declaration and definition of function def printGeek(strings : String*) { strings.map(println) }}

【Scala Varargs可变参数用法详细介绍和示例】输出:
Geeks for geeks

在上面的示例中, 我们使用*语法, 因此它是一个可变参数。名称参数的类型String.

    推荐阅读