F# 语言参考

本部分是针对 .NET 的多范例编程语言 F# 的参考。 F# 支持功能、面向对象和命令性的编程模型。

组织 F# 代码

下表显示了与组织 F# 代码相关的参考文章。

标题 DESCRIPTION
命名空间 了解 F# 中的命名空间支持。 通过命名空间,可以通过将名称附加到程序元素分组,将代码组织到相关功能区域。
模块 了解模块。 F# 模块类似于命名空间,还可以包含值和函数。 将模块中的代码分组有助于将相关代码保存在一起,并帮助避免程序中的名称冲突。
open 声明 了解工作原理 openopen声明指定模块、命名空间或类型,可以在不使用完全限定名称的情况下引用其元素。
签名 了解签名和签名文件。 签名文件包含一组 F# 程序元素(如类型、命名空间和模块)的公共签名的相关信息。 它可用于指定这些程序元素的可访问性。
存取控制 了解 F# 中的访问控制。 访问控制意味着声明哪些客户端能够使用某些程序元素,例如类型、方法、函数等。
XML 文档 了解如何支持从 XML 文档注释生成文档文件,也称为三斜杠注释。 可以像其他 .NET 语言一样从 F# 中的代码注释生成文档。

文本和字符串

下表显示了描述 F# 中的文本和字符串的参考文章。

标题 DESCRIPTION
文本 了解 F# 中文本值的语法以及如何为 F# 文本指定类型信息。
字符串 了解 F# 中的字符串。 该 string 类型将不可变文本表示为 Unicode 字符序列。 stringSystem.String 在 .NET 中的别名。
内插字符串 了解内插字符串,这是一种特殊的字符串形式,可用于直接在它们内嵌入 F# 表达式。

值和函数

下表显示了描述与值、 let-bindings 和函数相关的语言概念的参考文章。

标题 DESCRIPTION
价值观 了解值,这些值是具有特定类型的不可变数量;值可以是整型或浮点数、字符或文本、列表、序列、数组、元组、区分联合、记录、类类型或函数值。
函数 函数是任何编程语言中程序执行的基本单元。 F# 函数具有名称,可以具有参数并采用参数,并且具有正文。 F# 还支持函数编程构造,例如将函数视为值、在表达式中使用未命名函数、函数组合以形成新函数、curried 函数以及函数的隐式定义(通过部分应用函数参数)。
函数表达式 了解如何使用 F# “fun” 关键字定义 lambda 表达式,该表达式是匿名函数。

循环和条件

下表列出了描述 F# 循环和条件的文章。

标题 DESCRIPTION
条件表达式: if...then...else 了解表达式 if...then...else ,该表达式运行不同的代码分支,并计算结果为不同的值,具体取决于给定的布尔表达式。
循环: for...in 表达式 了解 for...in 表达式,一个循环构造,用于循环访问可枚举集合中模式的匹配项,例如范围表达式、序列、列表、数组或其他支持枚举的构造。
循环: for...to 表达式 了解表达式 for...to ,该表达式用于循环访问循环变量的一系列值。
循环: while...do 表达式 了解表达式 while...do ,该表达式用于在指定的测试条件为 true 时执行迭代执行(循环)。

模式匹配

下表显示了描述语言概念的参考文章。

标题 DESCRIPTION
模式匹配 了解模式,这些模式是转换输入数据的规则,并在整个 F# 中使用。 可以将数据与模式进行比较、将数据分解为构成部分,或以各种方式从数据中提取信息。
Match 表达式 了解表达式 match ,该表达式提供基于表达式与一组模式的比较的分支控件。
活动模式 了解活动模式。 使用活动模式可以定义对输入数据进行细分的命名分区。 可使用活动模式以自定义方式为每个分区分解数据。

异常处理

下表显示了描述与异常处理相关的语言概念的参考文章。

标题 DESCRIPTION
异常处理 包含有关 F# 中的异常处理支持的信息。
表达式try...with 了解如何将 try...with 表达式用于异常处理。
表达式try...finally 了解 F# try...finally 表达式如何使你能够执行清理代码,即使代码块引发异常也是如此。
关键字use 了解关键字 useusing以及可以控制资源的初始化和释放。
断言 了解表达式 assert ,这是可用于测试表达式的调试功能。 在调试模式下失败时,断言将生成系统错误对话框。

类型和类型推理

下表显示了介绍如何在 F# 中使用类型和类型推理的参考文章。

标题 DESCRIPTION
类型 了解 F# 中使用的类型以及如何命名和描述 F# 类型。
基本类型 了解 F# 中使用的基本类型。 它还提供相应的 .NET 类型和每种类型的最小值和最大值。
单位类型 了解类型 unit ,该类型指示缺少特定值;该 unit 类型只有一个值,当不存在其他值或不需要值时,该类型充当占位符。
类型缩写 了解类型缩写,这些缩写是类型的备用名称。
类型推理 了解 F# 编译器如何推断值、变量、参数和返回值的类型。
类型转换和转换 了解对 F# 中的类型转换的支持。
泛型 了解 F# 中的泛型构造。
自动泛化 了解 F# 如何自动通用化参数和函数类型,以便尽可能使用多个类型。
约束 了解适用于泛型类型参数的约束,以指定泛型类型或函数中类型参数的要求。
灵活类型 了解灵活类型。 灵活的类型注释指示参数、变量或值具有与指定类型兼容的类型,其中兼容性由类或接口的面向对象的层次结构中的位置确定。
度量单位 了解度量单位。 F# 中的浮点值可以具有关联的度量单位,这些度量单位通常用于指示长度、卷、质量等。
Byrefs 了解 F# 中的 byref 和 byref 类类型,这些类型用于低级别编程。

元组、列表、集合、选项

下表显示了描述 F# 支持类型的参考文章。

标题 DESCRIPTION
元组 了解元组,这些元组是未命名但排序的可能不同类型的值分组。
收藏 F# 函数集合类型的概述,包括数组、列表、序列(seq)、映射和集的类型。
列表 了解列表。 F# 中的列表是所有相同类型的有序、不可变的元素系列。
选项 了解选项类型。 当值可能或可能不存在时,将使用 F# 中的选项。 选项具有基础类型,可以保留该类型的值,或者它可能没有值。
数组 了解数组。 数组是连续数据元素的固定大小、从零开始的可变序列,都是同一类型。
序列 了解序列。 序列是所有一种类型的元素的逻辑序列。 仅在必要时计算单个序列元素,因此表示形式可能小于文本元素计数指示。
序列表达式 了解序列表达式,以便按需生成数据序列。
引用单元格 了解引用单元格,这些单元格是存储位置,可用于创建具有引用语义的可变变量。

记录和歧视联合

下表显示了描述 F# 支持的记录和区分联合类型定义的参考文章。

标题 DESCRIPTION
记录 了解记录。 记录表示命名值的简单聚合,可以选择使用成员。
匿名记录 了解如何构造和使用匿名记录,这是一种有助于处理数据的语言功能。
歧视联盟 了解歧视的联合,这些联合为可能属于各种命名事例之一的值提供支持,每个事例可能具有不同的值和类型。
结构 了解结构,这些结构是紧凑对象类型,对于具有少量数据和简单行为的类型,其效率比类更有效。
枚举 枚举是具有一组已定义命名值的类型。 可以使用它们代替文本,使代码更具可读性和可维护性。

对象编程

下表显示了描述 F# 对象编程的参考文章。

标题 DESCRIPTION
了解类,这些类是表示可以具有属性、方法和事件的对象的类型。
接口 了解接口,这些接口指定其他类实现的相关成员集。
抽象类 了解抽象类,这些类是一些或所有成员未实现的类,以便派生类可以提供实现。
类型扩展 了解类型扩展,以便将新成员添加到以前定义的对象类型。
代表 了解委托,这些委托将函数调用表示为对象。
继承 了解用于在面向对象的编程中对“is-a”关系或子属性进行建模的继承。
成员 了解 F# 对象类型的成员。
参数和参数 了解定义参数并将参数传递给函数、方法和属性的语言支持。 它包含有关如何按引用传递的信息。
运算符重载 了解如何在类或记录类型以及全局级别重载算术运算符。
对象表达式 了解对象表达式,这些表达式是创建基于现有基类型、接口或接口集的动态创建的匿名对象类型的新实例的表达式。

异步、任务和延迟

下表列出了描述 F# 异步、任务和延迟表达式的主题。

标题 DESCRIPTION
异步表达式 了解异步表达式,这样就可以以非常接近自然地编写同步代码的方式编写异步代码。
任务表达式 了解任务表达式,这是编写在与使用或生成 .NET 任务的 .NET 代码互作时使用的异步代码的替代方法。
延迟表达式 了解延迟表达式,这些表达式是未立即计算的计算,而是在实际需要结果时进行计算。

计算表达式和查询

下表列出了描述 F# 计算表达式和查询的主题。

标题 DESCRIPTION
计算表达式 了解 F# 中的计算表达式,该表达式提供了一种方便的语法,用于编写可以使用控制流构造和绑定进行排序和组合的计算。 它们可用于管理功能程序中的数据、控制和副作用。
查询表达式 了解查询表达式,这是一种实现 LINQ for F# 的语言功能,使你能够针对数据源或可枚举集合编写查询。

属性、反射、引号和纯文本格式

下表列出了描述 F# 反射功能的文章,包括属性、引号 nameof和纯文本格式。

标题 DESCRIPTION
属性 了解 F# 属性如何使元数据应用于编程构造。
nameof 了解 nameof 运算符,这是一种元编程功能,可用于生成源代码中任何符号的名称。
调用方信息 了解如何使用调用方信息参数属性从方法获取调用方信息。
源行、文件和路径标识符 了解标识符 __LINE____SOURCE_DIRECTORY__以及 __SOURCE_FILE__用于访问代码中的源行号、目录和文件名的内置值。
代码引号 了解代码引号,这是一种语言功能,可用于以编程方式生成和使用 F# 代码表达式。
纯文本格式 了解如何在 F# 应用程序和脚本中使用 sprintf 和其他纯文本格式。

类型提供程序

下表列出了描述 F# 类型提供程序的文章。

标题 DESCRIPTION
类型提供程序 了解类型提供程序,并查找有关使用内置类型提供程序访问数据库和 Web 服务的演练的链接。
创建类型提供程序 了解如何通过检查几个演示基本概念的简单类型提供程序来创建自己的 F# 类型提供程序。

F# 核心库 API 参考

F# 核心库 (FSharp.Core) API 引用 是所有 F# 核心库命名空间、模块、类型和函数的引用。

引用表

下表显示了提供用作 F# 中的标记的关键字、符号和文本表的参考文章。

标题 DESCRIPTION
关键字参考 包含指向所有 F# 语言关键字的信息的链接。
符号和运算符参考 包含 F# 中使用的符号和运算符表。

编译器支持的构造

下表列出了描述特殊编译器支持的构造的主题。

主题 DESCRIPTION
编译器选项 描述 F# 编译器的命令行选项。
编译器指令 描述 F# 编译器支持的处理器指令和编译器指令。