2021年大数据常用语言Scala:基础语法学习 方法参数
Posted Lansonli
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2021年大数据常用语言Scala:基础语法学习 方法参数相关的知识,希望对你有一定的参考价值。
目录
方法参数
scala中的方法参数,使用比较灵活。它支持以下几种类型的参数:
- 默认参数
- 带名参数
- 变长参数
默认参数
在定义方法时可以给参数定义一个默认值。
示例
定义一个计算两个值相加的方法,这两个值默认为0
调用该方法,不传任何参数
参考代码
// x,y带有默认值为0
def add(x:Int = 0, y:Int = 0) = x + y
add()
带名参数
在调用方法时,可以指定参数的名称来进行调用。
示例
定义一个计算两个值相加的方法,这两个值默认为0
调用该方法,只设置第一个参数的值
参考代码
def add(x:Int = 0, y:Int = 0) = x + y
add(x=1)
变长参数
如果方法的参数是不固定的,可以定义一个方法的参数是变长参数。
语法格式:
def 方法名(参数名:参数类型*):返回值类型 = {
方法体
}
[!NOTE]
在参数类型后面加一个*号,表示参数可以是0个或者多个
示例
定义一个计算若干个值相加的方法
调用方法,传入以下数据:1,2,3,4,5
参考代码
scala> def add(num:Int*) = num.sum
add: (num: Int*)Int
scala> add(1,2,3,4,5)
res1: Int = 15
其他:
- scala允许指定最后一个参数是可变长度的, 或者唯一一个参数
- 变长参数,在函数体内本质上是一个Array实例. 也就是除了例子里面的sum 外, 我们也可以用for循环迭代它, 如:
scala> def add(x: Int*): Int = {
| var result = 0
| for(i <- x) result += i
| result
| }
add: (x: Int*)Int
scala> add(1, 2, 3)
res6: Int = 6
- 虽然它本质上是一个Array ,但是你不可以将Array对象传递给他, 如果要传递 需要传递如 array:_* 表明将每个元素传递给它 而不是整个数组对象
scala> add(ar:_*)
res8: Int = 15
以上是关于2021年大数据常用语言Scala:基础语法学习 方法参数的主要内容,如果未能解决你的问题,请参考以下文章
2021年大数据常用语言Scala(十三):基础语法学习 函数 重点掌握
2021年大数据常用语言Scala:基础语法学习 break和continue