Scala Varargs

Scala Varargs

大多数编程语言都为我们提供了可变长度的参数移动性, Scala 也不例外。它允许我们表明函数的最后一个参数是一个可变长度的参数,它可以重复多次。它允许我们表明函数的最后一个参数是一个可变长度的参数,所以它可以重复多次。我们可以传递任意多的参数。这使得程序员可以向函数传递可变长度的参数列表。在函数内部,声明的参数类型实际上被保存为数组[数据类型],例如可以声明为 String 类型,实际上是数组[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, “one”)
    error: type mismatch;
    found : String(“one”)
    required:Int

  • 在主体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 + b
      
        for(arg <- args)
        {
            result += arg
        }
      
        return result
    }
} 

输出:

Sum is: 6008

在上面的例子中,我们可以看到函数的最后一个参数是一个可变长度的参数。这里1000是可变长度的参数。参数 arg 被添加到 结果 变量中。名称参数的类型是 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)
    }
  
} 

输出:

Geeks
for
geeks

在上面的例子中,由于我们用语法定义了它,所以它是一个变量参数。名字参数的类型是 String

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程