Scala之option类型及偏函数使用异常处理正则表达式
Posted 黑马程序员官方
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Scala之option类型及偏函数使用异常处理正则表达式相关的知识,希望对你有一定的参考价值。
▼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 方法中抛出一个异常. 参考代码
以上是关于Scala之option类型及偏函数使用异常处理正则表达式的主要内容,如果未能解决你的问题,请参考以下文章
Kotlin 异常处理之 OptionEitherResult
好程序员大数据教程分享Scala系列之Option_偏函数_String