0
点赞
收藏
分享

微信扫一扫

scala方法

一只1994 2022-03-26 阅读 74

Scala

第五章学习目标

  1. 掌握方法的格式和用法

  2. 掌握凾数的格式和用法

  3. 掌握九九乘法表案例

1.方法

1.1概述

实际开发中,我們需要編写大量的代码,这就勢必会渉及到重夏的需求.例如:求10和20的最大値,求11和22的最大値,像祥的需求,用来迸行比較的還輯代碕需要編写兩次,而如果把比較的還緝代碣放到方法中,只需要編写一次就可以了,文就是方法. scala中的方法和Java方法炎似,但scala与ava定乂方法的語法是不- -祥的。

1.2珸法格式

def 方法名(参数名:参数类型,参数名:参数类型) : [return type] = { 
//方法体
}

1.3示例

需求

  1. 定义一个方法getMax,用来获取两个整型数字的最大值,并返回结果(最大值)
  2. 调用该方法获取最大值,并将结果打印到控制台上

参考代码

def getMax (a1: Int,a2: Int): Int{
 return if(a1 > a2) a1 alse a2
}

def getMax (a1: Int,a2: Int) = if(a1 > a2) a1 alse a2

1.4返回值类型推断

scala定义方法可以省略返回值的数据类型,由scala自动推断返回值类型。这样方法定义后更加简洁。
注意: 定义递归方法,不能省略返回值类型
示例
定义递归方法,求5的阶乘.
步骤
1.定义方法factorial,用来计算某个数字的阶乘

2.调用方法,获取5的阶乘,并将结果打印到控制台上.

参考代码

//1.定义方法factorial, 用来计算某个数字的阶乘 
def factorial(n:Int):Int = if(n == 1) 1 else n * factorial(n 一1) 
//2.调用方法,获取5的阶乘.
va1 result = factorial(5) 
//3.将结果打印到控制台上. 
println("result: " + result)

1.5惰性方法

当记录方法返回值的变量被声明为lazy时,方法的执行将被推迟,直到我们首次使用该值时,方法才会执行,像这样
的方法,就叫:惰性方法.
注意:

使用场景:
1.打开数据库连接

2.提升某些特定模块的启动时间.

3.确保对象中的某些字段能优先初始化

2.函数

scala支持函数式编程,将来编写Spark/Flink程序会大量使用到函数,目前,我们先对函数做一个简单入门, 在后续
的学习过程中,我们会逐步重点讲解函数的用法.

2.1定义函数

语法

(参数名:参数类型,参数名:参数类型....) =>函数体I

2.2示例

需求:
1.定义一个计算两个整数和的函数
2.调用该函数

val getSum(a: Int, b:Int) => a+b
getSum

2.3方法和函数的区别

在Java中,方法和函数之间没有任何区别,只是叫法不同.但是在Scala中,函数和方法就有区别了,具体如下:

结论:在Scala中,函数是对象,而方法是属于对象的,所以可以理解为:方法归属于函数.

2.4方法转换为函数

有时候需要将方法转换为函数.例如:作为变量传递,就需要将方法转换为函数
格式

val变量名=方法名_
//格式为:方法名+空格+下划线

注意: 使用二即可将方法转换为函数
示例
1.定义一个方法用来计算两个整数和
2.将该方法转换为一个函数,并赋值给变量
参考代码

def add(a:Int ,b:Int) a+b
val getSum = add_

val sum = getSum(10,20)

案例:99乘法表

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AodBJR1a-1648276383892)(/Users/kayleigh/Library/Application Support/typora-user-images/image-20220326142934025.png)]

举报

相关推荐

0 条评论