博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Scala可变长度参数
阅读量:7217 次
发布时间:2019-06-29

本文共 897 字,大约阅读时间需要 2 分钟。

可变长度参数

Scala 允许你指明函数的最后一个参数可以是重复的。这可以允许客户向函数传入可变长度参数列表。想要标注一个重复参数,在参数的类型之后放一个星号。例如:

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

这样定义, echo 可以被零个至多个 String 参数调用:

scala> echo()scala> echo("one")onescala> echo("hello", "world!")helloworld!

函数内部,重复参数的类型是声明参数类型的数组。因此, echo 函数里被声明为类型“ String* ”

的 args 的类型实际上是 Array[String] 。然而,如果你有一个合适类型的数组,并尝试把它当作
重复参数传入,你会得到一个编译器错误:

scala> val arr = Array("What's", "up", "doc?")arr: Array[java.lang.String] = Array(What's, up, doc?)scala> echo(arr)
:7: error: type mismatch;found : Array[java.lang.String]required: Stringecho(arr)ˆ

要实现这个做法,你需要在数组参数后添加一个冒号和一个 _* 符号,像这样:

scala> echo(arr: _*)What'supdoc?

这个标注告诉编译器把 arr 的每个元素当作参数,而不是当作单一的参数传给 echo 。

==============================================================================
本文转自被遗忘的博客园博客,原文链接:http://www.cnblogs.com/rollenholt/p/4112833.html,如需转载请自行联系原作者
你可能感兴趣的文章
CAD文件图纸过大,该怎么解决?
查看>>
Spring aop 切不进去原因。。
查看>>
PHP获取客户端IP
查看>>
php开发APP接口-封装通信接口改进版
查看>>
Android系统性能演变历程
查看>>
OSChina 周三乱弹 —— 打醒精神去瞌睡
查看>>
SSH 密钥登录linux
查看>>
你必须掌握的 21 个 Java 核心技术!
查看>>
告诉你WHT中文站是什么?
查看>>
4、Juniper SSG520 PPTP映射到ROS后MAC无法连接解决方法
查看>>
利用批处理文件来建立一个记录3389登陆者信息
查看>>
Linux 系统下双机HA的实现
查看>>
02_swarm mode key concepts
查看>>
Eclipse打包插件Fat Jar 解压打包
查看>>
Apache Shiro 使用手册
查看>>
CentOS mini 6.5 安装DB2 Express-C 问题处理记录
查看>>
DirectByteBuffer
查看>>
Docker Compose文件详解 V2
查看>>
Memcached的原理与应用(未完)
查看>>
基于 Confluence 6 数据中心的 SAML 单点登录设置你的身份提供者
查看>>