美文网首页
Scala中的Repeated Parameters

Scala中的Repeated Parameters

作者: jupiter_2000 | 来源:发表于2018-04-11 21:14 被阅读0次

    Scala允许函数的最后一个参数是可重复的(Repeated)。这使得用户可传递变长参数列表给函数。为了指示出可重复参数,需要在该参数的类型后面加上一个星号。比如:

    def echo(args: String*) = for (arg <- args) println(arg)
    

    按上面的定义,可用0或多个String参数调用echo函数:

    echo() 
    echo("one")
    echo(“hello”,“world!”)
    

    在函数内部,可重复参数的类型是该参数申明类型的数组形式。因此,args这个被声明成了String类型的可重复参数,在echo函数内部其实是Array[String]类型。不过,如果直接将一个对应类型的数组参数传递给可重复类型参数,那么你将会看到一个编译错误:

    val arr = Array("what's", "up", "doc?")
    echo(arr) // 编译错误:type mismatch
    

    为了完成参数传递,你需要在数组参数后面加上一个:_*,就像这样:

    echo(arr: _*)
    

    这种符号(_*)告诉编译器将数组中的每个元素作为参数传递给echo函数,而不是将数组作为一个单一参数进行传递。

    相关文章

      网友评论

          本文标题:Scala中的Repeated Parameters

          本文链接:https://www.haomeiwen.com/subject/xgozhftx.html