F# 符号和运算符参考(MSDN)
下表描述 F# 语言中使用的符号,简要介绍符号的一些用途,并提供更多信息的链接。 符号按 ASCII 字符集顺序排序。
| 符号或运算符 | 链接 | 描述 |
|---|---|---|
! |
引用单元格 计算表达式 |
|
!= |
|
|
" |
文字 字符串 |
|
""" |
字符串 | 分隔逐字文本字符串。 区别你可以在字符串中使用单引号来指示引号字符的 @"..."。 |
# |
编译器指令 可变类型 |
|
$ |
|
|
% |
算术运算符 代码引用 |
|
%% |
代码引用 |
|
%? |
可以为 null 的运算符 |
|
& |
Match 表达式 |
|
&& |
布尔运算符 |
|
&&& |
位运算符 |
|
' |
文字 自动泛化 |
|
``...`` |
|
|
( ) |
unit 类型 |
|
(...) |
元组 运算符重载 |
|
(*...*) |
|
|
(|...|) |
活动模式 |
|
* |
算术运算符 元组 度量单位 |
|
*? |
可以为 null 的运算符 |
|
** |
算术运算符 |
|
+ |
算术运算符 |
|
+? |
可以为 null 的运算符 |
|
, |
元组 |
|
- |
算术运算符 |
|
-? |
可以为 null 的运算符 |
|
-> |
函数 Match 表达式 |
|
. |
成员 基元类型 |
|
.. |
循环:for...in 表达式 |
|
.. .. |
循环:for...in 表达式 |
|
.[...] |
数组 |
|
/ |
算术运算符 度量单位 |
|
/? |
可以为 null 的运算符 |
|
// |
|
|
/// |
XML 文档 |
|
: |
函数 |
|
:: |
列表 Match 表达式 |
|
:= |
引用单元格 |
|
:> |
强制转换和转换 |
|
:? |
Match 表达式 |
|
:?> |
强制转换和转换 |
|
; |
详细语法 列表 记录 |
|
< |
算术运算符 |
|
<? |
可以为 null 的运算符 | 当右侧是可以为 null 的类型时,计算“小于”运算。 |
<< |
函数 |
|
<<< |
位运算符 |
|
<- |
值 |
|
<...> |
自动泛化 |
|
<> |
算术运算符 |
|
<>? |
可以为 null 的运算符 |
|
<= |
算术运算符 |
|
<=? |
可以为 null 的运算符 |
|
|> |
函数 |
|
||> |
( ||> )<'T1,'T2,'U> 函数 |
|
|||> |
( |||> )<'T1,'T2,'T3,'U> 函数 |
|
<| |
函数 |
|
<|| |
( <|| )<'T1,'T2,'U> 函数 |
|
<||| |
( <||| )<'T1,'T2,'T3,'U> 函数 |
|
<@...@> |
代码引用 |
|
<@@...@@> |
代码引用 |
|
= |
算术运算符 |
|
=? |
可以为 null 的运算符 |
|
== |
|
|
> |
算术运算符 |
|
>? |
可以为 null 的运算符 |
|
>> |
函数 |
|
>>> |
位运算符 |
|
>= |
算术运算符 |
|
>=? |
可以为 null 的运算符 |
|
? |
形参和实参 |
|
? ... <- ... |
|
|
?>=, ?>, ?<=, ?<, ?=, ?<>, ?+, ?-, ?*, ?/ |
可以为 null 的运算符 |
|
>=?, >?, <=?, <?, =?, <>?, +?, -?, *?, /? |
可以为 null 的运算符 |
|
?>=?, ?>?, ?<=?, ?<?, ?=?, ?<>?, ?+?, ?-?, ?*?, ?/? |
可以为 null 的运算符 |
|
@ |
列表 字符串 |
|
[...] |
列表 |
|
[|...|] |
数组 |
|
[<...>] |
特性 |
|
\ |
字符串 |
|
^ |
静态解析的类型参数 字符串 |
|
^^^ |
位运算符 |
|
_ |
Match 表达式 泛型 |
|
` |
自动泛化 |
|
{...} |
序列 记录 |
|
| |
Match 表达式 |
|
|| |
布尔运算符 |
|
||| |
位运算符 |
|
~~ |
运算符重载 |
|
~~~ |
位运算符 |
|
~- |
运算符重载 |
|
~+ |
运算符重载 |
|
运算符优先级
下表显示 F# 语言中运算符及其他表达式关键字的优先顺序,从最低优先级到最高优先级。 适当时,还会列出关联性。
| 运算符 | 结合性 |
|---|---|
as |
Right |
when |
Right |
|(竖线) |
Left |
; |
Right |
let |
不相关 |
function, fun, match, try |
不相关 |
if |
不相关 |
not |
Right |
-> |
Right |
:= |
Right |
, |
不相关 |
or, || |
Left |
&, && |
Left |
:>, :?> |
Right |
<op, >op, =, |op, &op, &(包括 <<<, >>>, |||, &&&) |
Left |
^op(包括 ^^^) |
Right |
:: |
Right |
:? |
未关联 |
-op,+op |
适用于最为这些符号的中缀使用 |
*op,/op,%op |
Left |
**op |
Right |
f x(函数应用程序) |
Left |
|(模式匹配) |
Right |
前缀运算符(+op,-op,%,%%,&,&&``!op,~op) |
Left |
. |
Left |
f(x) |
Left |
f<types> |
Left |
F# 支持自定义运算符重载。 这意味着你可以自定义自己的运算符。 在上表中,op 可以是任何有效的运算符字符序列(可能为空),它既可以内嵌,也可以由用户定义。 因此,你可以使用此表来确定用于自定义运算符以实现所需优先级级别的字符顺序。 当编译器确定优先级时,会忽略前面的 . 字符。

浙公网安备 33010602011771号