scala快速入门系列【方法】

2021-01-26 11:15:27 浏览数 (1)

本篇作为scala快速入门系列的第九篇博客,为大家带来关于方法的相关内容。

方法定义

一个类可以有自己的方法,scala中的方法和Java方法类似。但scala与Java定义方法的语法是不一样的。


定义方法

语法

[!NOTE]

  • 参数列表的参数类型不能省略
  • 返回值类型可以省略,由scala编译器自动推断
  • 返回值可以不写return,默认就是{}块表达式的值

示例

  1. 定义一个方法,实现两个整形数值相加,返回相加后的结果
  2. 调用该方法

参考代码


返回值类型推断

scala定义方法可以省略返回值,由scala自动推断返回值类型。这样方法定义后更加简洁。

[!DANGER]

  • 定义递归方法,不能省略返回值类型

示例

定义递归方法(求阶乘) 10 * 9 * 8 * 7 * 6 * … * 1

参考代码1

参考代码2


方法参数

scala中的方法参数,使用比较灵活。它支持以下几种类型的参数:

  • 默认参数
  • 带名参数
  • 可变参数

默认参数

在定义方法时可以给参数定义一个默认值。

示例

  1. 定义一个计算两个值相加的方法,这两个值默认为0
  2. 调用该方法,不传任何参数

参考代码


带名参数

在调用方法的时候,可以指定参数的名称来进行调用。

示例

  1. 定义一个计算两个值相加的方法,这两个值默认为0
  2. 调用该方法,只设置第一个参数的值

参考代码


可变参数

如果方法的参数是不固定的,可以定义一个方法的参数是可变参数。

语法

[!NOTE]

  • 在参数类型后面加一个 * 号,表示参数可以是0个或者多个

示例

  1. 定义一个计算若干个值相加的方法
  2. 调用方法,传入以下数据:1,2,3,4,5

参考代码


方法调用方式

在scala中,有以下几种方法调用方式,

  • 后缀调用法
  • 中缀调用法
  • 花括号调用法
  • 无括号调用法

在后续编写spark,flink程序时,我们会使用到这些方法。


后缀调用法

这种方法与Java没有区别。

语法

示例

使用后缀法Math.abs求绝对值

参考代码


中缀调用法

语法

例如: 1 to 10

[!TIP]

  • 如果有多个参数,使用括号括起来

示例

使用中缀法 Math.abs 求绝对值

操作符即方法

来看一个表达式

大家觉得上面的表达式像不像方法调用?

在scala中, - * / %等这些操作符和Java一样,但在scala中,

  • 所有的操作符都是方法
  • 操作符是一个方法名字是符号的方法

花括号调用法

语法

[!DANGER]

  • 方法只有一个参数,才能使用花括号调用法

示例

使用花括号调用法Math.abs求绝对值

参考代码

无括号调用法

如果方法没有参数,可以省略方法名后面的括号。

示例

  • 定义一个无参数的方法,打印"hello"
  • 使用无括号调用法调用该方法

参考代码

本篇博客到这里就结束了,感兴趣的小伙伴们可以持续关注哟~下一篇将为大家带来函数的相关内容,敬请期待!

0 人点赞