本主题包含指向所有 F# 语言关键字的信息的链接。
F# 关键字表
下表按字母顺序显示所有 F# 关键字,以及包含详细信息的相关主题的简短说明和链接。
关键字 | 链接 | DESCRIPTION |
---|---|---|
abstract |
成员 抽象类 |
指示在声明它的类型中没有实现或它是虚拟且具有默认实现的方法。 |
and |
let 绑定记录 成员 约束 |
用于相互递归绑定和记录、属性声明以及泛型参数的多个约束。 |
as |
类 模式匹配 |
用于为当前类对象提供对象名称。 还用于在模式匹配中为整个模式命名。 |
assert |
断言 | 用于在调试期间验证代码。 |
base |
类 继承 |
用作基类对象的名称。 |
begin |
详细语法 | 在详细语法中,指示代码块的开头。 |
class |
类 | 在详细语法中,指示类定义的开头。 |
default |
成员 | 指示抽象方法的实现;与抽象方法声明一起使用来创建虚拟方法。 |
delegate |
代表 | 用于声明委托。 |
do |
do Bindings 循环: for...to 表达式循环: for...in 表达式循环: while...do 表达式 |
用于循环构造或执行命令性代码。 |
done |
详细语法 | 在详细语法中,指示循环表达式中代码块的末尾。 |
downcast |
类型转换和转换 | 用于转换为继承链中较低类型的类型。 |
downto |
循环: for...to 表达式 |
for 在表达式中,在反向计数时使用。 |
elif |
条件表达式: if...then...else |
用于条件分支。 的 else if 简短形式。 |
else |
条件表达式: if...then...else |
用于条件分支。 |
end |
结构 歧视联盟 记录 类型扩展 详细语法 |
在类型定义和类型扩展中,指示成员定义的部分的末尾。 在详细语法中,用于指定以 begin 关键字开头的代码块的末尾。 |
exception |
异常处理 异常类型 |
用于声明异常类型。 |
extern |
外部函数 | 指示声明的程序元素在另一个二进制或程序集中定义。 |
false |
基元类型 | 用作布尔文本。 |
finally |
异常: try...finally 表达式 |
与 try 引入一个代码块一起使用,无论是否发生异常,都会执行这些代码块。 |
fixed |
固定 | 用于在堆栈上“固定”指针,以防止垃圾回收。 |
for |
循环: for...to 表达式循环:for...in Expression |
用于循环构造。 |
fun |
Lambda 表达式:fun 关键字 |
在 lambda 表达式(也称为匿名函数)中使用。 |
function |
Match 表达式 Lambda 表达式:有趣的关键字 |
用作 lambda 表达式中关键字和fun 表达式的更短的替代方法match ,该表达式在单个参数上具有模式匹配。 |
global |
命名空间 | 用于引用顶级 .NET 命名空间。 |
if |
条件表达式: if...then...else |
用于条件分支构造。 |
in |
循环:for...in Expression 详细语法 |
用于序列表达式,并在详细语法中将表达式与绑定分开。 |
inherit |
继承 | 用于指定基类或基接口。 |
inline |
函数 内联函数 |
用于指示应直接集成到调用方代码中的函数。 |
interface |
接口 | 用于声明和实现接口。 |
internal |
存取控制 | 用于指定成员在程序集内可见,但不在程序集外部显示。 |
lazy |
延迟表达式 | 用于指定仅在需要结果时执行的表达式。 |
let |
let 绑定 |
用于将名称关联或绑定到值或函数。 |
let! |
异步表达式 任务表达式 计算表达式 |
在异步表达式中用于将名称绑定到异步计算的结果,或者在其他计算表达式中用于将名称绑定到结果(属于计算类型)。 |
match |
Match 表达式 | 用于通过比较值与模式进行分支。 |
match! |
计算表达式 | 用于内联调用计算表达式和模式匹配其结果。 |
member |
成员 | 用于在对象类型中声明属性或方法。 |
module |
模块 | 用于将名称与一组相关类型、值和函数相关联,以逻辑方式将其与其他代码分开。 |
mutable |
let Bindings | 用于声明变量,即可以更改的值。 |
namespace |
命名空间 | 用于将名称与一组相关类型和模块相关联,以逻辑方式将其与其他代码分开。 |
new |
构造函数 约束 |
用于声明、定义或调用可创建或可以创建对象的构造函数。 还用于泛型参数约束,以指示类型必须具有特定的构造函数。 |
not |
符号和运算符参考 约束 |
实际上不是关键字。 但是, not struct 组合用作泛型参数约束。 |
null |
Null 值 约束 |
指示缺少对象。 也用于泛型参数约束。 |
of |
歧视联盟 代表 异常类型 |
用于区分联合以指示值类别的类型以及委托声明和异常声明。 |
open |
导入声明: open 关键字 |
用于使命名空间或模块的内容在没有限定的情况下可用。 |
or |
符号和运算符参考 约束 |
与布尔条件一起使用作为布尔 or 运算符。 等效于 ||。也用于成员约束。 |
override |
成员 | 用于实现与基本版本不同的抽象或虚拟方法的版本。 |
private |
存取控制 | 限制对同一类型或模块中的代码的成员的访问。 |
public |
存取控制 | 允许从类型外部访问成员。 |
rec |
函数 | 用于指示函数是递归的。 |
return |
计算表达式 异步表达式 任务表达式 |
用于指示作为计算表达式结果提供的值。 |
return! |
计算表达式 异步表达式 任务表达式 |
用于指示计算表达式,计算时提供包含计算表达式的结果。 |
select |
查询表达式 | 在查询表达式中用于指定要提取的字段或列。 请注意,这是一个上下文关键字,这意味着它实际上不是保留字,它只在适当的上下文中像关键字一样。 |
static |
成员 | 用于指示在没有类型实例的情况下调用的方法或属性,或类型的所有实例之间共享的值成员。 |
struct |
结构 元组 约束 |
用于声明结构类型。 用于指定结构元组。 也用于泛型参数约束。 用于模块定义中的 OCaml 兼容性。 |
then |
条件表达式: if...then...else 构造函数 |
在条件表达式中使用。 还用于在对象构造后执行副作用。 |
to |
循环: for...to 表达式 |
在循环中使用 for 以指示范围。 |
true |
基元类型 | 用作布尔文本。 |
try |
异常:尝试...with Expression 异常:尝试...finally 表达式 |
用于引入可能生成异常的代码块。 与 with 或 finally . |
type |
F# 类型 类 记录 结构 枚举 歧视联盟 类型缩写 度量单位 |
用于声明类、记录、结构、区分联合、枚举类型、度量单位或类型缩写。 |
upcast |
类型转换和转换 | 用于转换为继承链中较高类型的类型。 |
use |
资源管理: use 关键字 |
用于需要 let 调用以释放资源的值 Dispose 。 |
use! |
计算表达式 异步表达式 任务表达式 |
用于需要调用以释放资源的值let! ,而不是Dispose 在异步表达式和其他计算表达式中使用。 |
val |
显式字段: val 关键字签名 成员 |
在签名中用于指示值,或者在有限情况下在类型中声明成员。 |
void |
基元类型 | 指示 .NET void 类型。 与其他 .NET 语言互作时使用。 |
when |
约束 | 用于模式匹配的布尔条件(when guards),并为泛型类型参数引入约束子句。 |
while |
循环: while...do 表达式 |
引入循环构造。 |
with |
Match 表达式 对象表达式 复制和更新记录表达式 类型扩展 异常: try...with 表达式接口 性能 |
与 match 模式匹配表达式中的关键字一起使用。 还用于对象表达式、记录复制表达式、类型扩展来引入成员定义、异常处理程序、接口实现以及具有显式 getter 和 setter 的属性声明。 |
yield |
列表、 数组、 序列 | 用于列表、数组或序列表达式,以生成序列的值。 通常可以省略,因为它在大多数情况下是隐式的。 |
yield! |
计算表达式 异步表达式 任务表达式 |
用于计算表达式,将给定计算表达式的结果追加到包含计算表达式的结果集合中。 |
const |
类型提供程序 | 类型提供程序允许使用 const 关键字将常量文本指定为类型参数参数。 |
以下令牌在 F# 中保留,因为它们是 OCaml 语言中的关键字:
asr
land
lor
lsl
lsr
lxor
mod
sig
如果使用 --mlcompatibility
编译器选项,则上述关键字可用作标识符。
以下令牌保留为将来扩展 F# 的关键字:
break
checked
component
const
constraint
continue
event
external
include
mixin
parallel
process
protected
pure
sealed
tailcall
trait
virtual
以下令牌曾经保留为关键字,但在 F# 4.1 中 发布 ,因此现在可以将它们用作标识符:
关键字 | 原因 |
---|---|
method |
用于 member 介绍方法。 |
constructor |
用于 new 介绍构造函数。 |
atomic |
与事务性内存 circa 2006 的时尚相关。 现在,这将是一个库定义的计算表达式。 |
eager |
不再需要;它最初设计为 let eager 匹配潜力 let lazy 。 |
object |
无需保留此项。 |
recursive |
使用 rec 。 |
functor |
如果 F# 添加了参数化模块,则使用 module M(args) = ... 。 |
measure |
属性 [<Measure>] 足够。 |
volatile |
属性 [<Volatile>] 足够。 |