▼Scala系列学习笔记:
- Scala概述与开发环境配置
- Scala基础学习之运算符
- Scala基础学习之for循环和while循环
- 一文掌握scala中的方法和函数
- Scala基础:类和对象、访问修饰符和构造器
- Scala的继承和抽象类
- Scala基础语法之Trait详解
- Scala学习之数组与元组
- 大数据Scala学习—列表、 集与映射
- 理解Scala的函数式编程思想
一、Option类型
1.1 概述
实际开发中
,
在返回一些数据时
,
难免会遇到空指针异常
(NullPointerException), 遇到一次就处理一次相对来讲还是比较繁琐的
.
在
Scala
中
,
我们返回某些数据时,可以返回一个Option类型的对象来封装具体的数据,从而实现有效的避免空指针异常。
1.2 格式
Scala
中,
Option
类型表示可选值。这种类型的数据有两种形式:

1.3 示例
需求
1.
定义一个两个数相除的方法,使用
Option
类型来封装结果
2. 打印结果
不是除零,打印结果
除零
, 则打印异常错误
参考代码

二、偏函数
2.1 定义
偏函数提供了更简洁的语法,可以简化函数的定义。配合集合的函数式编程,可以让代码更加优雅。
所谓的偏函数是指
被包在花括号内没有
match
的一组
case
语句
,
偏函数是
PartialFunction[A, B]类型的的一个实例对 象
,
其中
A
代表输入参数类型
, B
代表返回结果类型.
2.2 格式
2.3 示例一: 入门案例
需求
定义一个偏函数,根据以下方式返回

参考代码
2.4 示例二: 结合map函数使用
需求
1.
定义一个列表,包含
1-10
的数字
2.
请将
1-3
的数字都转换为
[1-3]
3.
请将
4-8
的数字都转换为
[4-8]
4.
将其他的数字转换为
(8-*]
5.
打印结果.
参考代码

三、正则表达式
3.1 概述
谓的正则表达式指的是
正确的
,
符合特定规则的式子
,
它是一门独立的语言
, 并且能被兼容到绝大多数的编程语言 中
.
在
scala
中
,
可以很方便地使用正则表达式来匹配数据。具体如下:
1. Scala
中提供了
Regex
类
来定义正则表达式
.
2.
要构造一个
Regex
对象,直接使用
String
类的
r
方法
即可
.
3.
建议使用三个双引号来表示正则表达式,不然就得对正则中的反斜杠进行转义.
3.2 格式
3.3 示例一: 校验邮箱是否合法
需求
1.
定义一个字符串
,
表示邮箱
.
2.
定义一个正则表达式,来匹配邮箱是否合法
.
3.
合法邮箱测试:
qq12344@163.com
4.
不合法邮箱测试:
qq12344@.com
5.
打印结果.
参考代码

3.4 示例二: 过滤所有不合法邮箱
需求
1.
找出以下列表中的所有不合法的邮箱
.
2. "
38123845@qq.com
", "
a1da88123f@gmail.com
", "
zhansan@163.com
", "123afadffff.com"
参考代码

3.5 示例三: 获取邮箱运营商
需求
1.
定义列表
,
记录以下邮箱
:

2. 使用正则表达式进行模式匹配,匹配出来邮箱运营商的名字。
例如:
邮箱
zhansan@163.com
,需要将
163(
运营商的名字
)
匹配出来
.
提示
:
1.
使用括号来匹配分组
.
2.
打印匹配到的邮箱以及运营商
参考代码

四、异常处理
4.1 概述
来看看下面这一段代码
:

执行程序,可以看到
scala抛出
了异常,而且没有打印出来
"
你好
! "
。说明程序出现错误后就终止了。
那怎么解决该问题呢?
在
Scala
中,可以使用异常处理来解决这个问题
.
而异常处理又分为两种方式
:
- 方式一: 捕获异常.
注意
:
该方式处理完异常后
,
程序会继续执行
- 方式二: 抛出异常.
注意
:
该方式处理完异常后
,
程序会终止执行.
4.2 捕获异常
格式

解释
:
1. try
中的代码是我们编写的业务处理代码
.
2.
在
catch
中表示当出现某个异常时,需要执行的代码
.
3.
在
fifinally中,写的是不管是否出现异常都会执行的代码
4.3 抛出异常
我们也可以在一个方法中,抛出异常。格式如下:
格式
4.4 示例
需求
1.
通过
try.catch
来处理 除数为零异常
.
2.
在
main
方法中抛出一个异常.
参考代码
