F# 语言参考

本部分是 F# 的一个参考,F# 语言是面向 .NET 的多范例编程语言。 F# 支持函数式、命令式、面向对象的编程模式。

组织 F# 代码

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

标题 说明
命名空间 了解 F# 中的命名空间支持。 命名空间通过使你能够将名称附加一组程序元素,实现将代码整理到相关的功能区域。
模块 了解模块。 F# 模块与命名空间类似,其中还可以包括值和函数。 对模块中的代码进行分组有助于将相关代码放在一起,并有助于避免程序中的名称冲突。
open 声明 了解 open 的工作原理。 open 声明指定某个模块、命名空间或某个无需使用完全限定的名称即可引用其元素的类型。
签名 了解签名和签名文件。 签名文件包含有关一组 F# 程序元素(如类型、命名空间和模块)的公共签名的信息。 它可用于指定这些程序元素的可访问性。
访问控制 了解 F# 中的访问控制。 访问控制意指声明哪些客户端能够使用特定程序元素,如类型、方法、函数等。
XML 文档 了解针对生成用于 XML 文档注释(也称为三斜杠注释)的文档文件的支持。 与其他 .NET 语言一样,可采用 F# 从代码注释生成文档。

文本和字符串

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

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

值和函数

下表显示了介绍与值、let-绑定和函数相关的语言概念的参考文章。

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

循环和条件

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

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

模式匹配

下表显示了介绍语言概念的参考文章。

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

异常处理

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

标题 说明
异常处理 包含有关 F# 中的异常处理支持的信息。
try...with 表达式 了解如何使用 try...with 表达式执行异常处理。
try...finally 表达式 了解如何通过 F# try...finally 表达式执行清理代码,即使在代码块引发异常的情况下也能实现。
use 关键字 了解关键字 useusing,它们可以控制资源的初始化和发布。
断言 了解 assert 表达式,它是一种可用于测试表达式的调试功能。 在调试模式中遇到故障时,断言将生成一个系统错误对话框。

类型和类型推理

下表显示了介绍 F# 中类型和类型推理工作原理的参考文章。

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

元组、列表、集合、选项

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

标题 说明
元组 了解元组,它是未命名但有序的值的组合,值的类型可能不同。
集合 F# 函数集合类型的概述,包括数组、列表、序列 (seq)、映射和集的类型。
列表 了解列表。 F# 中的列表是所有相同类型元素的有序、不可变系列。
选项 了解选项类型。 某值可能存在或可能不存在时,将使用 F# 中的选项。 选项具有基础类型,可能包含该类型的值或者可能不包含值。
数组 了解数组。 数组是连续数据元素的大小固定、从零开始的可变序列,其中数据元素都为同一类型。
序列 了解序列。 序列是同类型元素的逻辑系列。 各序列元素仅在必要时进行计算,因此表示形式可能比文本元素计数指示的小。
序列表达式 了解序列表达式,通过这些表达式可按需生成数据序列。
引用单元格 了解引用单元格,它们是一些存储位置,可以利用它们来创建具有引用语义的可变变量。

记录和可区分联合

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

标题 说明
记录 了解记录。 记录表示已命名值的简单聚合,可选择包含成员。
匿名记录 了解如何构造和使用匿名记录,这是一种可帮助操作数据的语言功能。
可区分联合 了解可区分联合,它提供对下面这种值的支持:该值可能是多种已命名用例中的一个,且每个用例可能具有不同的值和类型。
结构 了解结构,结构是一种紧凑对象类型,对于数据量较少且行为简单的类型来说,结构可能比类更有效。
枚举 枚举是具有一组已定义的已命名值的类型。 可以使用它们来代替文本,使代码更具可读性且更易维护。

对象编程

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

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

异步、任务和惰性

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

Title 说明
异步表达式 了解异步表达式,通过这些表达式能够以非常接近自然编写同步代码的方式编写异步代码。
任务表达式 了解任务表达式,这些表达式是编写与使用或生成 .NET 任务的 .NET 代码进行互操作时所使用的异步代码的替代方法。
延迟表达式 了解延迟表达式,这些表达式是指不会立即开始而要等到实际需要结果时才进行的计算。

计算表达式和查询

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

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

特性、反射、引用和纯文本格式设置

下表列出了介绍 F# 反射功能的文章,其中包括特性、引用、nameof 和纯文本格式设置。

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

类型提供程序

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

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

F# 核心库 API 参考

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

引用表

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

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

编译器支持的构造

下表列出了一些主题,这些主题介绍编译器支持的特殊构造。

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