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可变参数列表相关推荐

  1. Scala可变参数列表,命名参数和参数缺省

    重复参数 Scala在定义函数时允许指定最后一个参数可以重复(变长参数),从而允许函数调用者使用变长参数列表来调用该函数,Scala中使用"*"来指明该参数为重复参数.例如: 1 ...

  2. Java可变参数 Python可变参数 Scala可变参数

    Java 可变参数的特点: (1).只能出现在参数列表的最后: (2)....位于变量类型和变量名之间,前后有无空格都可以: (3).调用可变参数的方法时,编译器为该可变参数隐含创建一个数组,在方法体 ...

  3. java基础(九) 可变参数列表介绍

    一.可变参数简介 在不确定参数的个数时,可以使用可变的参数列表. 1. 语法: 参数类型-(三个点) 例如: void printArray(Object...) 注意: 每个方法最多只有一个可变参数 ...

  4. c语言理解参数,c语言中对可变参数列表的简单理解

    函数原型中一般情况下参数的数目是固定的,但是如果想在不同的时候接收不定数目的参数时该怎么办呢?c语言提供了可变参数列表来实现. 可变参数列表是通过宏来实现的,这些宏定义在stdarg.h的头文件中.头 ...

  5. C语言中可变参数列表

    该博文为原创文章,未经博主同意不得转载,如同意转载请注明博文出处 本文章博客地址:https://cplusplus.blog.csdn.net/article/details/105113526 可 ...

  6. 《C++ Primer 第五版》(第6.1~6.3节) 函数形参和实参传递,可变参数列表和函数返回值

    1.函数形参和实参传递问题 函数参数传递有两种:值传递(变量,指针),引用传递(使用别名). 在形参和实参的传递过程中,牵涉到大的类类型对象.容器类型对象或者不支持拷贝操作的对象时,不适合采用值传递, ...

  7. php函数可变参数列表,PHP函数可变参数列表的具体实现方法介绍

    也许对于PHP初级程序员来说,对于PHP函数并不能完全熟练的掌握.我们今天为大家介绍的PHP函数可变参数列表的实现方法主要是利用func_get_args(). func_num_args().fun ...

  8. c语言可变参数 printf,c语言 使用可变参数列表实现printf(my_printf)

    //使用可变参数列表实现print("s\t c\n","bit-tech",'w'); #include #include void int_to_char( ...

  9. c语言中的函数可变参数列表相关的三个宏

    在stdarg.h头文件中声明了一个类型va_list和3个与函数可变参数列表有关的宏:va_start.va_arg.va_end. #include<stdarg.h> //包含宏相关 ...

最新文章

  1. AgileEAS.NET平台开发实例-药店系统-数据库还原
  2. OpenCV中图像窗口的鼠标事件
  3. 大二上期计算机试题答案,2019年对口升学班上期期末计算机网络技术试卷及答案知识讲解.doc...
  4. 你会在C#的类库中添加web service引用吗?
  5. FFMPEG 图像拉伸缩放及数据格式转换
  6. Python、TensorFlow、机器学习、深度学习四件套(附免费下载)
  7. (一)netty介绍
  8. 基于qt和mysql的地铁线路系统_课内资源 - 基于QT实现的可视化地铁换乘查询系统...
  9. 《操作系统真象还原》第三章 ---- 完善MBR 尝汇编先苦涩后甘甜而再战MBR!(内有闲聊)
  10. 计算机应用苹果笔记,使用感受 篇一:为什么我不推荐ipad+apple pencil记笔记(一反主流)...
  11. 数据在链路层传播相关时间计算
  12. 各种大片任意看!真的超级好用!
  13. ORACLE+SQL性能优化
  14. 公布一下各类学术杂志的审稿费、版面费
  15. Docker+Frp+NGinx+云服务器 实现HTTPS内网穿透
  16. Householder变换、Givens旋转与QR分解
  17. 域用户桌面显示计算机名,用Bginfo设置域客户端桌面显示主机名和IP地址信息
  18. 微软2016校园招聘9月在线笔试题解
  19. 机器学习-周志华-支持向量机的逻辑详解
  20. vue中单页面应用页面跳转

热门文章

  1. 绘制卡方分布的概率密度函数 matlab,MATLAB如何使用chi2pdf函数计算卡方分布的概率密度...
  2. qtextedit非编辑时去边框_10分钟看懂Photoshop图像的基本编辑方法-数字化图像、图像基础理论知识(置入文件)...
  3. python编程狮苹果系统_Python编程狮app下载-Python编程狮苹果版v1.0
  4. php滑到底部自动加载更多,ListView滑动到底部自动加载更多
  5. php数据保存txt文件怎么打开方式_php - 利用保存在TXT文件(PHP)中的数组数据 - SO中文参考 - www.soinside.com...
  6. 护壁桩嵌入深度_钻孔灌注桩嵌岩深度最少多少
  7. redis 失效时间单位是秒还是毫秒_redis分布式锁的这些坑,我怀疑你是假的开发...
  8. java开发学历要求_学Java开发有学历限制要求吗?
  9. mysqli.class.php,PHP MySQLi类
  10. python装饰器理解_Python装饰器理解(新手)