5.6 第五章小结
在这一章中,我们讨论了值,讨论了有关函数的详细信息,突出了一个事实,在 F# 中,函数就是值!我们看到几个创建不同的值和对应组合类型的方法。从讨论元组开始,给我们一个存储多个值为一个的方法。接下来,我们讨论了差别联合,使我们能够表示包含多种选项的值。声明差别联合时,指定哪些情况,然后,值可以是声明的选项之一。还讨论了泛型类型,类似于 C# 中的泛型类。用来声明的类型,可用于携带不同的值,这使代码更通用和可重用。
我们还讨论了这些类型背后的理论,看看它们在 F# 中的常见用途。看到了多值(元组)在从单个函数返回多个结果时,是很有用的,以及它如何能够比使用 C# 的 out 参数更具吸引力。特别有趣的可选值(差别联合)是选项类型,它可以表示未定义的值。这是一个更安全使用空值的选项,因为语言强制调用的代码写出情况,当使用模式匹配时,处理"未定义"的情况。
最后,我们看了 F# 中的函数类型和它在 C# 中的等价,Func 委托。学习了如何使用 lambda 函数的语法创建函数,它们如何被用作参数值,以及作为从另一个函数或方法的返回值。在函数值的最后一个转折,我们还介绍了一种有用的技术,称为偏函数应用。
在这一章中,你只看到使用值的基本方法。这是因为许多操作通常不直接写出来,而是使用高阶函数。用这种方式使用值是我们下一章的主要议题。使用高阶函数,将能把使用值的逻辑隐藏在函数中,通过使用函数作为参数值,指定操作中最重要部分。