共用方式為


關鍵字參考

本主題包含所有 F# 語言關鍵字之相關資訊的連結。

F# 關鍵字表格

下表依字母順序顯示所有 F# 關鍵字,以及包含更多資訊之相關主題的簡短說明和連結。

關鍵字 連結 描述
abstract 成員

抽象類別
指出方法,此方法可能在其宣告的型別中沒有實作,或者是虛擬方法而具有預設實作。
and let 繫結

記錄

成員

條件約束
用於互相遞迴的繫結和記錄、屬性宣告,以及搭配用於泛型參數的多個條件約束。
as 類別

模式比對
用來為目前的類別物件提供物件名稱。 也用來為模式比對內的整個模式提供名稱。
assert 判斷提示 用以在偵錯期間驗證程式碼。
base 類別

繼承
作為基底類別物件的名稱。
begin 詳細語法 在詳細資訊語法中指定程式碼區塊的開頭。
class 類別 在詳細資訊語法中,指出類別定義的開頭。
default 成員 指出抽象方法的實作;與抽象方法宣告一併使用,以建立虛擬方法。
delegate 委派 用以宣告委派。
do do 繫結

迴圈: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 運算式
用於迴圈建構。
fun Lambda 運算式:fun 關鍵字 用於 Lambda 運算式,也稱作匿名函式。
function 比對運算式

Lambda 運算式:fun 關鍵字
用作 fun 關鍵字的較短替代項,以及在單一引數有模式比對之 match 運算式中的比對運算式。
global 命名空間 用以參考頂層 .NET 命名空間。
if 條件運算式:if...then...else 用於條件式分支建構。
in 迴圈:for...in 運算式

詳細語法
用於順序運算式及詳細資料語法中,以從繫結分隔運算式。
inherit 繼承 用以指定基底類別或基底介面。
inline 函數

內嵌函式
用以指出應直接整合到呼叫端程式碼中的函式。
interface 介面 用以宣告及實作介面。
internal 存取控制 用以指定在組件內可見,但在組件外不可見的成員。
lazy 延遲運算式 用以指定在需要結果時才會執行的運算式。
let let 繫結 用以建立名稱對值或函式的關聯或繫結。
let! 非同步運算式

工作運算式

計算運算式
在非同步運算式中用來將名稱繫結至非同步計算的結果,或在其他計算運算式中,用來將名稱繫結至屬於計算型別的結果。
match 比對運算式 用來比較值與模式,以進行分支。
match! 計算運算式 用以內嵌對計算運算式的呼叫,並其結果進行模式比對。
member 成員 用以宣告物件型別中的屬性或方法。
module 單元 用以在名稱與相關型別、值及函式的群組之間建立關聯,以邏輯方式將其與其他程式碼分隔。
mutable let 繫結 用以宣告變數,亦即可變更的值。
namespace 命名空間 用以在名稱與相關型別及模組的群組之間建立關聯,以邏輯方式將其與其他程式碼分隔。
new 建構函式

條件約束
用來宣告、定義或叫用會建立或可建立物件的建構函式。

也用於泛型參數條件約束,以指出型別必須具有特定建構函式。
not 符號和運算子參考

條件約束
實際上不是關鍵字。 不過,not struct 結合時可作為泛型參數條件約束。
null Null 值

條件約束
指出物件不存在。

也用於泛型參數條件約束。
of 已區分的聯集

委派

例外狀況類型
用於差別聯集以指出值分類的型別,並用於委派和例外狀況宣告。
open 匯入宣告:open 關鍵字 用以製作不需資格即可使用的命名空間或模組內容。
or 符號和運算子參考

條件約束
與布林值條件搭配使用,作為布林值 or 運算子。 相當於 ||。

也用於成員條件約束中。
override 成員 用以實作不同於基底版本的抽象或虛擬方法版本。
private 存取控制 將成員的存取限制為型別或模組相同的程式碼。
public 存取控制 允許存取來自型別外的成員。
rec 函數 用以指出函式是遞迴的。
return 計算運算式

非同步運算式

工作運算式
用以指出要提供作為計算運算式結果的值。
return! 計算運算式

非同步運算式

工作運算式
用以指出一個計算運算式,經評估後會提供包含計算運算式的結果。
select 查詢運算式 在查詢運算式中用來指定要擷取的欄位或資料行。 請注意,這是內容關鍵字,這表示它實際上並非保留字,而只會在適當的內容中當作關鍵字。
static 成員 用以指出不需要型別執行個體即可呼叫的方法或屬性,或在所有型別執行個體間共用的值成員。
struct 結構

元組

條件約束
用以宣告結構型別。

用以指定結構 Tuple。

也用於泛型參數條件約束。

用於模組定義中的 OCaml 相容性。
then 條件運算式:if...then...else

建構函式
用於條件運算式。

也在物件建構之後用來執行副作用。
to 迴圈:for...to 運算式 for 迴圈中用來指出範圍。
true 基本類型 用作布林常值。
try 例外狀況:try...with 運算式

例外狀況:try...finally 運算式
用來導入可能會產生例外狀況的程式碼區塊。 與 withfinally 搭配使用。
type F# 類型

類別

記錄

結構

列舉

已區分的聯集

類型縮寫

測量單位
用以宣告類別、記錄、結構、差別聯集、列舉型別、測量單位或型別縮寫。
upcast 轉型和轉換 用以將型別轉換為繼承鏈結中較高的型別。
use 資源管理:use 關鍵字 代替 let 用於需要呼叫 Dispose 以釋放資源的值。
use! 計算運算式

非同步運算式

工作運算式
在非同步運算式和其他計算運算式中代替 let! 用於需要呼叫 Dispose 以釋放資源的值。
val 明確欄位:val 關鍵字

簽章

成員
在有限的情形下在簽章中用來指出值,或在型別中用來宣告成員。
void 基本類型 指出 .NET void 類型。 與其他 .NET 語言交互操作時使用。
when 條件約束 用於模式比對時的布林值條件 (when 成立條件),以及為泛型型別參數導入條件約束子句。
while 迴圈:while...do 運算式 導入迴圈條件約束。
with 比對運算式

物件運算式

複製和更新記錄運算式

類型擴充

例外狀況:try...with 運算式
與模式比對運算式中的 match 關鍵字搭配使用。 也用於物件運算式、記錄複製運算式和型別擴充,以導入成員定義,以及導入例外狀況處理常式。
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 與 2006 年左右的交易式記憶體熱潮有關。 這現在會是程式庫定義的計算運算式。
eager 不再需要,它最初設計為 let eager,用以比對潛在的 let lazy
object 不需要保留這個。
recursive 使用 rec
functor 如果 F# 已新增參數化模組,您將使用 module M(args) = ...
measure [<Measure>] 屬性已足夠。
volatile [<Volatile>] 屬性已足夠。

另請參閱