8.3.3 F# 代码的进一步演变
在上一节中,我们从一段简单的 F# 代码,它存储一个函数的列表,到更复杂的版本,使用记录的列表。这正是我们第 1 章中讨论的 F# 开发过程的一部分。我们学习过, F# 程序通常是非常简单的脚本开始,演变成标准的遵循 .NET 编程准则的代码,好处来自 .NET 对象模型。
我们开始用最简单的方法来解决问题,仅使用我们在开头所知道的。当我们后来意识到需要添加报表,使用另一个函数,我们相对较小地调整了代码(因为,在 F# 中,这是很容易做到的),结果,版本有了更多的功能。转换不只是在功能方面,而且还表现在可读性和可维护性上。
在扩展初始版本时,我们提到过,可以使用一个包含函数元组的列表。像这样的表述,在最初的原型上使用的,比在已完成的应用程序上更有可能,使用 F# 记录类型明显使代码更具可读性。即使我们直接使用记录类型,记住,当你开始写变成一个复杂的产品的应用程序时,用简单的方法表示,是不错的。在 F# 中,这种改变是很容易做到,当开发最初版本时,通常想要尽快地运行有用的功能,而不是用可靠的方式。
尽管我们已经完成了这个健壮的应用程序的版本的几个转换,但仍要考虑改善。因为 F# 是一种 .NET 语言,我们可以使用几个面向对象的功能,以使代码更 .NET-friendly。在下一章,我们会回到这个主题,可以看到,如何把记录转换成 F# 的接口类型,对应于 C# 的接口。
C# 中的组合行为
我们以 C# 代为例码开始了这一章,声明有一个方法的接口表示检查,但然后,我们使用函数(和 Func 委托)作为写代码更方便的方法。如果我们想要实现一个程序,处理两种函数,像我们现在已在 F# 中做的,可能会立即转回接口。在 C# 中,使用接口肯定是更方便、更合理,比使用元组或以函数作为其成员的类。已经说过,在 C# 中,我们有两个选项:用于简单行为的函数,或者,对于更复杂的接口。
在 F# 中,在表示形式之间的转换更简单。最重要的是,由于类型推断,我们不必改变源代码中各处的类型。此外,把 lambda 函数转换成类的变化,要比添加另一个函数的变化更大。在第 9 章,我们将看到,在 F# 中,也可以使用 .NET 接口表示组合行为。即使在使用接口时,有方便的方法将 lambda 函数转换成任何可以看作是一个"lambda 对象"的东西。这个功能的名字叫对象表达式(object expression),我们将在下一章讨论。
在这一章,我们主要关注以行为中心的应用程序,但在介绍中我们解释过,以数据为中心和以行为为中心的方法经常一起使用。现在,我们将看到,组合有联合类型的函数,在第 7 章中讨论过,它对于表示数据非常重要。
分享到:
相关推荐
DXperience 8.3.3 Sources 源代码
eXpressApp Framework 8.3.3 Sources 源代码
DXperience和XAF 8.3.3全部源代码和编译脚本,喜欢自己编译的朋友可以下载,不用自己编译的建议直接下载重编译版。
DXperience和XAF 8.3.3全部源代码和编译脚本,喜欢自己编译的朋友可以下载,不用自己编译的建议直接下载重编译版。
DXperience和XAF 8.3.3全部源代码和编译脚本,喜欢自己编译的朋友可以下载,不用自己编译的建议直接下载重编译版。 感谢俄罗斯的朋友分享。
8.3.3已破解,放心用!
notepad++ V8.3.3版本源代码,经典工具源码学习。
打开后寻找CuteFTP.8.3.3 所在的文件夹即可
包含以下几个常用的插件,同时精心调校了工具栏 Compare 文件对比 DspellCheck 拼写校验 Explore 资源管理器 JSMinNpp js 工具 nppcrypt 加密工具 NppExport 样式导出工具 NppQrCode64 二维码 XBrackets 括号自动补全...
最新版windows kibana-8.3.3-windows-x86_64.zip最新版windows kibana-8.3.3-windows-x86_64.zip
最新版windows logstash-8.3.3-windows-x86_64.zip最新版windows logstash-8.3.3-windows-x86_64.zip
最新版ftp 工具,绿色 汉化,可用 绿化祥见说明
DXperience 8.3.3 part3 (2008年12月23日版本)
logstash_linux-x86_64(v8.3.3)
Ubuntu SecureCRT8.3.3 官方原版 非破解版,懒得注册邮箱获取下载地址的可以使用
npp.8.3.3.Installer.x64.exe Notepad++
最新版 elasticsearch-analysis-ik-8.3.3.zip最新版 elasticsearch-analysis-ik-8.3.3.zip
ftp网站管理工具,中文,非常好用,绝对能用绝对破解。
SecureCRT 8.3.3官方安装包,不用去官网注册下载 包含windows 64位安装包以及破解程序,和Ubuntu安装包及破解程序
最新版linux logstash-8.3.3-linux-x86_64.tar.gz最新版linux logstash-8.3.3-linux-x86_64.tar.gz