目录

方法参数

默认参数

带名参数

变长参数


方法参数

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*)Intscala> add(1,2,3,4,5)
res1: Int = 15

其他:

  1. scala允许指定最后一个参数是可变长度的, 或者唯一一个参数
  2. 变长参数,在函数体内本质上是一个Array实例. 也就是除了例子里面的sum 外, 我们也可以用for循环迭代它, 如:
 scala> def add(x: Int*): Int = {| var result = 0| for(i <- x) result += i| result| }
add: (x: Int*)Intscala> add(1, 2, 3)
res6: Int = 6
  1. 虽然它本质上是一个Array ,但是你不可以将Array对象传递给他, 如果要传递 需要传递如 array:_* 表明将每个元素传递给它 而不是整个数组对象
 scala> add(ar:_*)
res8: Int = 15

2021年大数据常用语言Scala(十一):基础语法学习 方法参数相关推荐

  1. 2021年大数据常用语言Scala(三十一):scala面向对象 特质(trait)

    目录 特质(trait) 作为接口使用 定义具体的方法 定义具体方法和抽象方法 定义具体的字段和抽象的字段 实例对象混入trait trait调用链 trait的构造机制 trait继承class 特 ...

  2. 2021年大数据常用语言Scala(二十一):函数式编程 遍历 foreach

    目录 遍历  foreach 使用类型推断简化函数定义 使用下划线来简化函数定义 遍历  foreach 之前,学习过了使用for表达式来遍历集合.我们接下来将学习scala的函数式编程,使用fore ...

  3. 2021年大数据常用语言Scala(四):基础语法学习 声明变量

    目录 声明变量 语法格式 在解释器中定义一个变量 val和var变量 使用类型推断来定义变量 惰性赋值 声明变量 我们将来每一天编写scala程序都会定义变量.那scala语言如何定义变量呢? 语法格 ...

  4. 2021年大数据常用语言Scala(十六):基础语法学习 列表 List 重点掌握

    目录 列表 List 重点掌握 不可变列表定义 可变列表 列表常用操作 列表 List 重点掌握 列表是scala中最重要的.也是最常用的数据结构.List具备以下性质: 可以保存重复的值 有先后顺序 ...

  5. 2021年大数据常用语言Scala(十四):基础语法学习 数组  重点掌握

    目录 数组  重点掌握 定长数组 变长数组 遍历数组 数组常用算法 数组  重点掌握 scala中数组的概念是和Java类似,可以用数组来存放一组数据.scala中,有两种数组,一种是定长数组,另一种 ...

  6. 2021年大数据常用语言Scala(一):Scala简介

    目录 一.Scala简介 为什么使用scala Scala对比Java 案例 一.Scala简介 scala是运行在JVM上的多范式编程语言,同时支持面向对象和面向函数编程 多范式:就是包含多种编程思 ...

  7. 2021年大数据常用语言Scala(二十七):函数式编程 聚合操作

    目录 聚合操作 聚合  reduce 定义 案例 折叠  fold 定义 案例 聚合操作 聚合操作,可以将一个列表中的数据合并为一个.这种操作经常用来统计分析中 聚合  reduce reduce表示 ...

  8. 2021年大数据常用语言Scala(三十四):scala高级用法 异常处理

    目录 异常处理 捕获异常 抛出异常 异常处理 Scala中 无需在方法上声明异常 来看看下面一段代码. def main(args: Array[String]): Unit = {val i = 1 ...

  9. 2021年大数据常用语言Scala(二十九):scala面向对象 单例对象

    目录 单例对象 定义object - 掌握 伴生对象 - 掌握 apply方法 - 掌握 main方法 单例对象 Scala中没有static关键字,但是它支持静态 如果要定义静态的东西,统统定义到o ...

最新文章

  1. 使用python愉快地做高数线代题目~
  2. 提高C++性能的编程技术笔记:编码优化+测试代码
  3. 212页PPT详解MEMS微传感器的工作原理(深入全面!)
  4. ubuntu查看python版本-切换Ubuntu默认python版本的两种方法
  5. Hibernate数据保存操作方法的原理对比
  6. vmware 指定的网络名不可用
  7. asp.net 报表页面模板_20套大屏模板,教你3分钟制作出酷炫的可视化大屏
  8. vim 插件cscope 使用
  9. 【转】常用的正则表达式
  10. python中的元组字符串整数浮点数都是不可变的数据类型,Python不可变数据类型总结...
  11. NLPIR ICTCLAS2015分词系统的使用
  12. DeepFaceLab坑之ffmpeg
  13. python中读取列表所有元素_python获取所有子元素
  14. 【笔记总结】高中生物——【选一 Ⅱ】第二章 微生物的培养与应用
  15. unity中eulerAngles和rotation的区别
  16. 人生不过一场旅行,你路过我,我路过你
  17. 2021年8月--最新免费国内1000个http代理ip
  18. 有三顶红帽子和两顶蓝帽子逻辑推理
  19. 一篇讲解iphone6 双核处理器的新闻稿
  20. comon lisp标准_common Lisp学习笔记(十四)

热门文章

  1. python的日志库logging,真香!!!
  2. 正视自己的所想所求,活出真实的自己
  3. 业余时间用哪里,哪里就有发展的可能
  4. 【Spring】工厂模式解耦
  5. kafka+zookeeper搭建步骤kafka问题
  6. python读取xml文件报错ValueError: multi-byte encodings are not supported
  7. 物联网安全Wi-Fi漫游
  8. 2021年大数据Flink(二十二):Time与Watermaker
  9. Android include 标签使用
  10. android .9图片使用和一些技巧