大多数编程语言都为函数提供了可变长度参数迁移,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.
推荐阅读
- 算法题(使用递归生成所有可能的子序列)
- Bash程序检查Number是否为质数
- Python OpenCV仿射变换实现详细指南
- SASS如何使用占位符选择器(用法示例)
- Python使用Pandas处理日期和时间
- 如何在JavaScript中创建二维数组()
- 进展问题(AP,GP,HP)详细介绍
- CSS边框属性用法示例
- 亚马逊面试题分享|S54(实习)