5.6 第五章小结
在这一章,我们讨论了值,详细讨论了有关函数的内容,突出了在 F# 中,函数就是值!我们看到几种创建不同值和对应组合类型的方法。首先,讨论了元组,这是能够把多个值保存为一个值的方法;接下来,我们讨论了差别联合,它能够表示包含多种选项的值;声明差别联合时,我们讲解了什么是情况,以及,值可能是声明的选项中的一个;还讨论了泛型类型,它类似于 C# 中的泛型类;我们用泛型类型声明可以包含不同值的类型,这使代码更通用和可重用。
我们还讨论了这些类型背后的理论,以及在 F# 中的常见用法;了解了多值(元组)能用于从一个函数返回多个结果,它比使用 C# 的 out 参数更具吸引力;特别重要的可选值(差别联合)是option 类型,它能够表示未定义的值。这是使用空值更安全的选项,因为语言强制调用的代码,当使用模式匹配时,必须写出处理“未定义”的情况。
最后,我们讨论了 F# 中的函数类型,和 C# 中的与之相当的功能,Func 委托;学习了使用 lambda 函数的语法创建函数,函数可以作为其他函数或方法的参数值和返回值;在函数值的最后,我们还介绍了一种有用的技术,称为散函数应用。
在这一章,我们知道了使用值的唯一基本方法。这是因为许多操作通常不直接写出来,而是使用高阶函数。通过这种方式使用值,是我们下一章的主题。使用高阶函数,能把使用值的逻辑隐藏在函数中,通过使用函数作为参数值,描述操作中最重要部分。