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

Posted 黑马程序员官方

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 方法中抛出一个异常. 参考代码

  

 

以上是关于Scala之option类型及偏函数使用异常处理正则表达式的主要内容,如果未能解决你的问题,请参考以下文章

Kotlin 异常处理之 OptionEitherResult

好程序员大数据教程分享Scala系列之Option_偏函数_String

Scala类型声明与定义函数定义流程控制异常处理

好程序员大数据教程Scala系列之样例类_Option_偏函数

Scala快速入门--异常处理泛型高阶函数隐式转换

Scala 学习笔记之集合 Option