本主题包括 F# 语言中使用的符号和运算符表。
符号和运算符表
下表描述 F# 语言中使用的符号、提供指向包含详细信息的主题的链接,并简要描述一些符号的使用。 符号按 ASCII 字符集顺序排序。
符号或运算符 |
链接 |
描述 |
---|---|---|
! |
|
|
!= |
不适用。 |
|
" |
|
|
""" |
分隔逐字文本字符串。 区别你可以在字符串中使用单引号来指示引号字符的 @"..."。 |
|
# |
|
|
$ |
无可用的详细信息。 |
|
% |
|
|
%% |
|
|
%? |
|
|
& |
|
|
&& |
|
|
&&& |
|
|
' |
|
|
``...`` |
无可用的详细信息。 |
|
( ) |
|
|
(...) |
|
|
(*...*) |
|
|
(|...|) |
|
|
* |
|
|
*? |
|
|
** |
|
|
+ |
|
|
+? |
|
|
, |
|
|
- |
|
|
- |
|
|
-> |
|
|
. |
|
|
.. |
|
|
.. .. |
|
|
.[...] |
|
|
/ |
|
|
/? |
|
|
// |
|
|
/// |
|
|
: |
|
|
:: |
|
|
:= |
|
|
:> |
|
|
:? |
|
|
:?> |
|
|
; |
|
|
< |
|
|
<? |
当右侧是可以为 null 的类型时,计算“小于”运算。 |
|
<< |
|
|
<<< |
|
|
<- |
|
|
<...> |
|
|
<> |
|
|
<>? |
|
|
<= |
|
|
<=? |
|
|
<| |
|
|
<|| |
|
|
<||| |
|
|
<@...@> |
|
|
<@@...@@> |
|
|
= |
|
|
=? |
|
|
== |
不适用。 |
|
> |
|
|
>? |
|
|
>> |
|
|
>>> |
|
|
>= |
|
|
>=? |
|
|
? |
|
|
? ... <- ... |
无可用的详细信息。 |
|
?>=, ?>, ?<=, ?<, ?=, ?<>, ?+, ?-, ?*, ?/ |
|
|
>=?, >?, <=?, <?, =?, <>?, +?, -?, *?, /? |
|
|
?>=?, ?>?, ?<=?, ?<?, ?=?, ?<>?, ?+?, ?-?, ?*?, ?/? |
|
|
@ |
|
|
[...] |
|
|
[|...|] |
|
|
[<...>] |
|
|
\ |
|
|
^ |
|
|
^^^ |
|
|
_ |
|
|
` |
|
|
{...} |
|
|
| |
|
|
|| |
|
|
||| |
|
|
|> |
|
|
||> |
|
|
|||> |
|
|
~~ |
|
|
~~~ |
|
|
~- |
|
|
~+ |
|
运算符优先级
下表显示 F# 语言中运算符及其他表达式关键字的优先顺序,从最低优先级到最高优先级。 适当时,还会列出关联性。
运算符 |
结合性 |
---|---|
as |
右 |
when |
右 |
| (竖线) |
左 |
; |
右 |
let |
不相关 |
function, fun, match, try |
不相关 |
if |
不相关 |
-> |
右 |
:= |
右 |
, |
不相关 |
or, || |
左 |
&, && |
左 |
<op, >op, =, |op, &op |
左 |
&&&, |||, ^^^, ~~~, <<<, >>> |
左 |
^op |
右 |
:: |
右 |
:?>, :? |
不相关 |
-op、+op(二进制) |
左 |
*op, /op, %op |
左 |
**op |
右 |
f x(函数应用程序) |
左 |
| (模式匹配) |
右 |
给运算符加上前缀(+op、-op、%、%%、&、&&、!op、~op) |
左 |
. |
左 |
f(x) |
左 |
f<types> |
左 |
F# 支持自定义运算符重载。 这意味着你可以自定义自己的运算符。 在上表中,op 可以是任何有效的运算符字符顺序(可能为空),它既可以内嵌,也可以由用户定义。 因此,你可以使用此表来确定用于自定义运算符以实现所需优先级级别的字符顺序。 当编译器确定优先级时,会忽略前面的 . 字符。