Scala之option类型及偏函数使用、异常处理、正则表达式

▼Scala系列学习笔记:

  1. Scala概述与开发环境配置
  2. Scala基础学习之运算符
  3. Scala基础学习之for循环和while循环
  4. 一文掌握scala中的方法和函数
  5. Scala基础:类和对象、访问修饰符和构造器
  6. Scala的继承和抽象类
  7. Scala基础语法之Trait详解
  8. Scala学习之数组与元组
  9.  大数据Scala学习—列表、 集与映射
  10. 理解Scala的函数式编程思想
  11. 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 方法中抛出一个异常.
参考代码

  

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值