關鍵字參考
本主題包含所有 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 運算式 |
用來導入可能會產生例外狀況的程式碼區塊。 與 with 或 finally 搭配使用。 |
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>] 屬性已足夠。 |