Scala可变参数列表
2019独角兽企业重金招聘Python工程师标准>>>
Scala可变参数列表
Scala函数支持的可变参数列表,命名参数和参数缺省值定义。
重复参数
Scala在定义函数时允许指定最后一个参数可以重复(变长参数),从而允许函数调用者使用变长参数列表来调用该函数,Scala中使用“*”来指明该参数为重复参数。例如:
scala> def echo(args: String*) = {| for (arg <- args) {| println(arg)| }| }
echo: (args: String*)Unitscala> echo("hello", "world")
hello
worldscala>
在函数内部,变长参数的类型,实际为一数组,比如上例的String * 类型实际为 Array[String]。 然而,如果你试图直接传入一个数组类型的参数给这个参数,编译器会报错:
scala> val arr = Array("hello","world")
arr: Array[String] = Array(hello, world)scala> echo(arr)
<console>:13: error: type mismatch;found : Array[String]required: Stringecho(arr)^scala>
为了避免这种情况,你可以通过在变量后面添加 _*来解决,这个符号告诉Scala编译器在传递参数时逐个传入数组的每个元素,而不是数组整体。
scala> echo(arr: _*)
hello
world
=======END=======
转载于:https://my.oschina.net/xinxingegeya/blog/617359
Scala可变参数列表相关推荐
- Scala可变参数列表,命名参数和参数缺省
重复参数 Scala在定义函数时允许指定最后一个参数可以重复(变长参数),从而允许函数调用者使用变长参数列表来调用该函数,Scala中使用"*"来指明该参数为重复参数.例如: 1 ...
- Java可变参数 Python可变参数 Scala可变参数
Java 可变参数的特点: (1).只能出现在参数列表的最后: (2)....位于变量类型和变量名之间,前后有无空格都可以: (3).调用可变参数的方法时,编译器为该可变参数隐含创建一个数组,在方法体 ...
- java基础(九) 可变参数列表介绍
一.可变参数简介 在不确定参数的个数时,可以使用可变的参数列表. 1. 语法: 参数类型-(三个点) 例如: void printArray(Object...) 注意: 每个方法最多只有一个可变参数 ...
- c语言理解参数,c语言中对可变参数列表的简单理解
函数原型中一般情况下参数的数目是固定的,但是如果想在不同的时候接收不定数目的参数时该怎么办呢?c语言提供了可变参数列表来实现. 可变参数列表是通过宏来实现的,这些宏定义在stdarg.h的头文件中.头 ...
- C语言中可变参数列表
该博文为原创文章,未经博主同意不得转载,如同意转载请注明博文出处 本文章博客地址:https://cplusplus.blog.csdn.net/article/details/105113526 可 ...
- 《C++ Primer 第五版》(第6.1~6.3节) 函数形参和实参传递,可变参数列表和函数返回值
1.函数形参和实参传递问题 函数参数传递有两种:值传递(变量,指针),引用传递(使用别名). 在形参和实参的传递过程中,牵涉到大的类类型对象.容器类型对象或者不支持拷贝操作的对象时,不适合采用值传递, ...
- php函数可变参数列表,PHP函数可变参数列表的具体实现方法介绍
也许对于PHP初级程序员来说,对于PHP函数并不能完全熟练的掌握.我们今天为大家介绍的PHP函数可变参数列表的实现方法主要是利用func_get_args(). func_num_args().fun ...
- c语言可变参数 printf,c语言 使用可变参数列表实现printf(my_printf)
//使用可变参数列表实现print("s\t c\n","bit-tech",'w'); #include #include void int_to_char( ...
- c语言中的函数可变参数列表相关的三个宏
在stdarg.h头文件中声明了一个类型va_list和3个与函数可变参数列表有关的宏:va_start.va_arg.va_end. #include<stdarg.h> //包含宏相关 ...
最新文章
- AgileEAS.NET平台开发实例-药店系统-数据库还原
- OpenCV中图像窗口的鼠标事件
- 大二上期计算机试题答案,2019年对口升学班上期期末计算机网络技术试卷及答案知识讲解.doc...
- 你会在C#的类库中添加web service引用吗?
- FFMPEG 图像拉伸缩放及数据格式转换
- Python、TensorFlow、机器学习、深度学习四件套(附免费下载)
- (一)netty介绍
- 基于qt和mysql的地铁线路系统_课内资源 - 基于QT实现的可视化地铁换乘查询系统...
- 《操作系统真象还原》第三章 ---- 完善MBR 尝汇编先苦涩后甘甜而再战MBR!(内有闲聊)
- 计算机应用苹果笔记,使用感受 篇一:为什么我不推荐ipad+apple pencil记笔记(一反主流)...
- 数据在链路层传播相关时间计算
- 各种大片任意看!真的超级好用!
- ORACLE+SQL性能优化
- 公布一下各类学术杂志的审稿费、版面费
- Docker+Frp+NGinx+云服务器 实现HTTPS内网穿透
- Householder变换、Givens旋转与QR分解
- 域用户桌面显示计算机名,用Bginfo设置域客户端桌面显示主机名和IP地址信息
- 微软2016校园招聘9月在线笔试题解
- 机器学习-周志华-支持向量机的逻辑详解
- vue中单页面应用页面跳转
热门文章
- 绘制卡方分布的概率密度函数 matlab,MATLAB如何使用chi2pdf函数计算卡方分布的概率密度...
- qtextedit非编辑时去边框_10分钟看懂Photoshop图像的基本编辑方法-数字化图像、图像基础理论知识(置入文件)...
- python编程狮苹果系统_Python编程狮app下载-Python编程狮苹果版v1.0
- php滑到底部自动加载更多,ListView滑动到底部自动加载更多
- php数据保存txt文件怎么打开方式_php - 利用保存在TXT文件(PHP)中的数组数据 - SO中文参考 - www.soinside.com...
- 护壁桩嵌入深度_钻孔灌注桩嵌岩深度最少多少
- redis 失效时间单位是秒还是毫秒_redis分布式锁的这些坑,我怀疑你是假的开发...
- java开发学历要求_学Java开发有学历限制要求吗?
- mysqli.class.php,PHP MySQLi类
- python装饰器理解_Python装饰器理解(新手)