6.4 处理选项类型
来源:互联网 发布:sqlyog执行sql文件 编辑:程序博客网 时间:2024/05/24 06:09
6.4 处理选项类型
F# 中,最重要的可选值之一就是选项(option)类型。回顾一下我们在前面的章节中所看到的,选项类型能够安全地表达可能会缺失的值。这种安全性使我们在写代码时,不能轻易地假定值是存在的,当选项类型表示的值缺失时,将失败;相反,我们必须使用模式匹配,写代码要包含两种情况。在这一节,我们将学习处理选项类型两个有用的函数。
注意
我们刚才看到的处理元组的函数不属于 F# 库,因为,它们非常简单,显式使用元组通常也非常容易。然而,我们在这一节所看到的,处理选项类型的函数,是标准的 F# 库的一部分。
首先,我们快速看一个示例,它演示了为什么我们需要用高阶操作来处理选项类型。我们将使用前一章中的 readInput 函数,从控制台读取用户输入,并返回 int option 类型的值。当用户输入有效的数字,将返回 Some(n);否则,将返回 None。清单 6.10 中我们的实现函数,读两个数字,返回它们的和;如果有一个输入不是有效的数字,就返回 None。
清单 6.10 使用模式匹配求两个数字的和 (F#)
let readAndAdd1() =
match(readInput()) with
|None –> None
|Some(n) –>
match(readInput()) with
|None –> None
|Some(m) –>
Some(n + m)
函数调用 readInput,读取第一个输入,使用使用模式匹配提取值,重复这个过程提取第二个输入。当两个输入都是正确的,相加并返回 Some;所有其他分支,都返回 None。不幸的是,显式使用模式匹配使代码太长。现在,我们要看两个操作,将有助于更加简洁地重写代码。
- 6.4 处理选项类型
- 6.4 处理选项类型
- 6.4.4 实现选项类型的操作
- RFC930_Telnet终端类型选项
- Telnet终端类型选项
- 6.4.4.1 在 C#中使用选项类型
- SQLAlchemy列类型和选项、关系选项
- 正则表达式--处理选项
- Main():处理命令行选项
- 取处理选项
- 处理命令行选项
- Main():处理命令行选项
- 命令行选项的处理
- Shell选项处理
- main:处理命令行选项
- main();处理命令行选项
- main处理命令行选项
- 命令行选项的处理
- MDI多文档框架下让主框架与子框架菜单栏一致的方法
- 单线程任务队列
- 常见排列组合问题公式总结
- MapReduce TotalOrderPartitioner 全局排序
- android wifi(三)
- 6.4 处理选项类型
- Cisco 笔试准备
- 精益生产咨询下领导该具备的风格
- _CrtIsValidHeapPointer错误的现象
- UTF-8编码规则
- Unity自带网络功能——创建服务,以及连接指定服务
- javascript中this用法
- Search for a Range 两种解法
- Linux之删除操作