共用方式為


符號和運算子參考 (F#)

本主題包含 F# 語言中使用的符號與運算子資料表。

符號與運算子資料表

下表說明 F# 語言中使用的符號,提供可提供詳細資訊之主題的連結,並提供一些符號用法的簡短說明。 符號會依據 ASCII 字元集的順序加以排序。

符號或運算子

連結

描述

!

參照儲存格 (F#)

計算運算式 (F#)

  • 取值參考儲存格。

  • 在關鍵字後面,代表由工作流程所控制的關鍵字行為之修改版本。

!=

不適用。

  • F# 中不使用。 使用 <> 進行不等比較運算。

"

常值 (F#)

字串 (F#)

  • 分隔文字字串。

"""

字串 (F#)

分隔逐字文字字串。 有別於 @"...",因為您可以在字串中使用單引號來表示引號字元。

#

編譯器指示詞 (F#)

彈性類型 (F#)

  • 開頭前置處理器或編譯器指示詞,例如,#light。

  • 與類型一起使用時,表示「彈性類型」(flexible type),這指的是類型或任何一種其衍生的類型。

$

沒有可用的詳細資訊。

  • 使用於內部,用於特定編譯器產生的變數與函式名稱。

%

算術運算子 (F#)

程式碼引號 (F#)

  • 計算整數模數。

  • 用於將運算式接合成具類型的程式碼引號。

%%

程式碼引號 (F#)

  • 用於將運算式接合成不具類型的程式碼引號。

%?

可為 Null 的運算子 (F#)

  1. 當右側是可為 null 的類型時,計算整數模數。

&

搜尋運算式 (F#)

  • 計算可變動值的位址,以在與其他語言相互操作時使用。

  • 用於 AND 模式中。

&&

Boolean 運算子 (F#)

  • 計算布林值 AND 運算。

&&&

位元運算子 (F#)

  • 計算位元 AND 運算。

'

常值 (F#)

自動產生 (F#)

  • 分隔單一字元常值。

  • 表示泛型類型參數。

``...``

沒有可用的詳細資訊。

  • 分隔若在其他狀況下不會是合法識別項的識別項,例如語言關鍵字。

( )

單位類型 (F#)

  • 代表單位類型的單一值。

(...)

Tuple (F#)

運算子多載 (F#)

  • 表示運算式的評估順序。

  • 分隔 Tuple。

  • 用於運算子定義中。

(*...*)

  • 分隔無法跨越多行的註解。

(|...|)

作用中的模式 (F#)

  • 分隔使用中的模式。 也稱為「banana 短片」(banana clips)。

*

算術運算子 (F#)

Tuple (F#)

測量單位 (F#)

  • 當做二元運算子使用時,將左側與右側相乘。

  • 在類型中,表示在 Tuple 中配對。

  • 用於測量單位類型中。

*?

可為 Null 的運算子 (F#)

  1. 當右側是可為 null 類型時,將左側與右側相乘。

**

算術運算子 (F#)

  • 計算乘冪運算 (x ** y 表示 x 的 y 次方)。

+

算術運算子 (F#)

  • 當做二元運算子使用時,將左側與右側相加。

  • 當做一元運算子使用時,表示正數量。 (正式地說,它會產生正負號維持不變的相同值。)

+?

可為 Null 的運算子 (F#)

  1. 當右側是可為 null 的類型時,將左側與右側相加。

,

Tuple (F#)

  • 分隔 Tuple 的項目或類型參數。

-

算術運算子 (F#)

  • 當做二元運算子使用時,從左側減去右側。

  • 當做一元運算子使用時,執行負運算。

-

可為 Null 的運算子 (F#)

  1. 當右側是可為 null 的類型時,從左側減去右側。

->

函式 (F#)

搜尋運算式 (F#)

  • 在函式類型中,分隔引數並傳回值。

  • 產生運算式 (在循序項運算式中);相當於 yield 關鍵字。

  • 用於比對運算式中

.

成員 (F#)

基本類型 (F#)

  • 存取成員,並分隔完整名稱中的個別名稱。

  • 以浮點數指定小數點。

..

迴圈:for...in 運算式 (F#)

  • 指定範圍。

.. ..

迴圈:for...in 運算式 (F#)

  • 指定範圍與遞增值。

.[...]

陣列 (F#)

  • 存取陣列元素。

/

算術運算子 (F#)

測量單位 (F#)

  • 左側 (分子) 除以右側 (分母)。

  • 用於測量單位類型中。

/?

可為 Null 的運算子 (F#)

  1. 當右側是可為 null 的類型時,左側除以右側。

//

  • 表示單行註解的開頭。

///

XML 文件 (F#)

  • 表示 XML 註解。

:

函式 (F#)

  • 在類型註釋中,將參數或成員名稱與其類型分隔。

::

清單 (F#)

搜尋運算式 (F#)

  • 建立清單。 左側的元素會附加至右側的清單。

  • 用於模式比對中以分隔清單的組件。

:=

參照儲存格 (F#)

  • 將值指派給參考儲存格。

:>

轉型和轉換 (F#)

  • 將類型轉換成階層中較高階的類型。

:?

搜尋運算式 (F#)

  • 如果值符合指定的類型,即傳回 true;否則,會傳回 false (類型測試運算子)。

:?>

轉型和轉換 (F#)

  • 將類型轉換成階層中較低階的類型。

;

詳細語法 (F#)

清單 (F#)

資料錄 (F#)

  • 分隔運算式 (大部分用於詳細語法中)。

  • 分隔清單的元素。

  • 分隔記錄的欄位。

<

算術運算子 (F#)

  • 計算小於運算。

<?

可為 Null 的運算子 (F#)

當右側是可為 null 的類型時,計算小於運算。

<<

函式 (F#)

  • 以相反順序撰寫兩個函式;第二個函式會先執行 (反向撰寫運算子)。

<<<

位元運算子 (F#)

  • 將左側中數量中的位元,向左移位右側所指定的位元數。

<-

值 (F#)

  • 將值指派給變數。

<...>

自動產生 (F#)

  • 分隔類型參數。

<>

算術運算子 (F#)

  • 如果左側不等於右側,即傳回 true;否則,傳回 false。

<>?

可為 Null 的運算子 (F#)

  1. 當右側是可為 null 的類型時,計算「不等於」運算。

<=

算術運算子 (F#)

  • 如果左側小於或等於右側,即傳回 true;否則,傳回 false。

<=?

可為 Null 的運算子 (F#)

  1. 當右側是可為 null 的類型時,計算「小於或等於」運算。

<|

函式 (F#)

  • 將右側的運算結果傳遞至左側的函式 (反向管道運算子)。

<||

Operators.( <|| )<'T1,'T2,'U> 函式 (F#)

  • 將右側兩個引數的 Tuple 傳遞至左側的函式。

<|||

Operators.( <||| )<'T1,'T2,'T3,'U> 函式 (F#)

  • 將右側三個引數的 Tuple 傳遞至左側的函式。

<@...@>

程式碼引號 (F#)

  • 分隔具類型的程式碼引號。

<@@...@@>

程式碼引號 (F#)

  • 分隔不具類型的程式碼引號。

=

算術運算子 (F#)

  • 如果左側等於右側,即傳回 true;否則,傳回 false。

=?

可為 Null 的運算子 (F#)

  1. 當右側是可為 null 的類型時,計算「等於」運算。

==

不適用。

  • F# 中不使用。 使用 = 進行等號比較運算。

>

算術運算子 (F#)

  • 如果左側大於右側,即傳回 true;否則,傳回 false。

>?

可為 Null 的運算子 (F#)

  1. 當右側是可為 null 的類型時,計算「大於」運算。

>>

函式 (F#)

  • 撰寫兩個函式 (正向撰寫運算子)。

>>>

位元運算子 (F#)

  • 將左側數量中的位元,向右移位右側指定的位數。

>=

算術運算子 (F#)

  • 如果右側大於或等於左側,即傳回 true;否則,傳回 false。

>=?

可為 Null 的運算子 (F#)

  1. 當右側是可為 null 的類型時,計算「大於或等於」運算。

?

參數和引數 (F#)

  • 指定選擇性引數。

  • 用做為動態方法及屬性呼叫的運算子。 您必須提供自己的實作。

? ... <- ...

沒有可用的詳細資訊。

  • 用來做為設定動態屬性的運算子。 您必須提供自己的實作。

?>=, ?>, ?<=, ?<, ?=, ?<>, ?+, ?-, ?*, ?/

可為 Null 的運算子 (F#)

  1. 相當於沒有 ? 前置詞的對應運算子, 其中可為 null 的類型在左側。

>=?, >?, <=?, <?, =?, <>?, +?, -?, *?, /?

可為 Null 的運算子 (F#)

  1. 相當於沒有 ? 後置字元的對應運算子, 其中可為 null 的類型在右側。

?>=?, ?>?, ?<=?, ?<?, ?=?, ?<>?, ?+?, ?-?, ?*?, ?/?

可為 Null 的運算子 (F#)

  1. 相當於沒有問號括住的對應運算子,其兩側都是可為 null 的類型。

@

清單 (F#)

字串 (F#)

  • 串連兩個清單。

  • 置於字串常值前面時,表示要逐字解譯字串,但是不解譯逸出字元。

[...]

清單 (F#)

  • 分隔清單的元素。

[|...|]

陣列 (F#)

  • 分隔陣列的元素。

[<...>]

屬性 (F#)

  • 分隔屬性。

\

字串 (F#)

  • 逸出下一個字元;用於字元和字串常值中。

^

以統計方式解析的類型參數 (F#)

字串 (F#)

  • 指定必須在編譯階段 (而非執行階段) 解析的類型參數。

  • 串連字串。

^^^

位元運算子 (F#)

  • 計算位元互斥 OR 運算。

_

搜尋運算式 (F#)

泛型 (F#)

  • 表示萬用字元模式。

  • 指定匿名泛型參數。

`

自動產生 (F#)

  • 使用於內部,用於表示泛型類型參數。

{...}

序列 (F#)

資料錄 (F#)

  • 分隔循序項運算式與計算運算式。

  • 用於記錄定義中。

|

搜尋運算式 (F#)

  • 分隔各個相符的情況、個別差別聯集宣告和列舉值。

||

Boolean 運算子 (F#)

  • 計算布林值 OR 運算。

|||

位元運算子 (F#)

  • 計算位元 OR 運算。

|>

函式 (F#)

  • 將左側的結果傳遞至右側的函式 (正向管道運算子)。

||>

Operators.( ||> )<'T1,'T2,'U> 函式 (F#)

  • 將左側兩個引數的 Tuple 傳遞至右側的函式。

|||>

Operators.( |||> )<'T1,'T2,'T3,'U> 函式 (F#)

  1. 將左側三個引數的 Tuple 傳遞至右側的函式。

~~

運算子多載 (F#)

  • 用以宣告一元負運算子的多載。

~~~

位元運算子 (F#)

  • 計算位元 NOT 運算。

~-

運算子多載 (F#)

  • 用以宣告一元相減運算子的多載。

~+

運算子多載 (F#)

  • 用以宣告一元相加運算子的多載。

運算子優先順序

下表顯示 F# 語言中運算子和其他運算式關鍵字的優先順序,順序從最低的優先順序到最高的優先順序。 同時列出關聯性 (如果適用的話)。

運算子

順序關聯性

as

when

| (管道)

;

let

Nonassociative

function, fun, match, try

Nonassociative

if

Nonassociative

->

:=

,

Nonassociative

or, ||

&, &&

<op, >op, =, |op, &op

&&&, |||, ^^^, ~~~, <<<, >>>

^op

::

:?>, :?

Nonassociative

-op, +op, (binary)

*op, /op, %op

**op

f x (函式應用程式)

| (模式比對)

前置運算子 (+op、-op、%、%%、&、&&、!op、~op)

.

f(x)

f<types>

F# 支援自訂運算子多載。 這表示您可以定義自己的運算子。 在上表中,op 可以是任何有效的 (可能是空的) 運算子字元序列,即內建或使用者定義的序列。 因此,您可以使用此表格來判斷要對自訂運算子使用什麼字元序列,以達到您想要的優先順序等級。 前置 . 字元在編譯器判斷優先順序時,會予以忽略。

請參閱

參考

運算子多載 (F#)

其他資源

F# 語言參考