Scala中的Repeated Parameters

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与Java的关系 Scala与Java的关系是非常紧密的!! 因为Scala是基于Java虚拟机,也就是...
    灯火gg阅读 3,482评论 1 24
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,923评论 18 139
  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 4,196评论 0 13
  • Lua 5.1 参考手册 by Roberto Ierusalimschy, Luiz Henrique de F...
    苏黎九歌阅读 13,905评论 0 38
  • 好一个喧嚣热闹的世界。 (一) 阿豪就读于河南省的一所本三学校,他的个子不高,眼睛不算很大,但他总是好奇的盯着学校...
    派的二次方的平方阅读 502评论 0 2