F# 語言參考

本節是 F# 語言參考,此語言是以 .NET 平台為目標、多重開發架構的程式設計語言。 F# 語言支援函式、物件導向和命令式程式設計模型。

F# 語彙基元

下表顯示做為 F# 語彙基元之關鍵字、符號和常值的參考主題。

標題

描述

關鍵字參考 (F#)

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

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

包含 F# 語言使用之符號和運算子的表格。

常值 (F#)

描述 F# 常值的語法以及如何指定 F# 常值的型別資訊。

F# 語言概念

下表列出描述語言概念的參考主題。

標題

描述

函式 (F#)

函式是所有程式設計語言的基礎程式執行單位。 如同其他語言,F# 函式有名稱、可以有參數並且接受引數,而且也有主體。 F# 也支援函式程式設計建構,例如將函式視為值、在運算式中使用不具名函式、複合函式以形成新函式、局部調用函式,以及透過部分套用函式引數隱含定義函式。

F# 型別

描述 F# 中所使用的型別以及 F# 型別的命名及描述方式。

型別推斷 (F#)

描述 F# 編譯器如何推斷值、變數、參數和傳回值的型別。

自動產生 (F#)

描述 F# 的泛型建構。

繼承 (F#)

描述繼承,這是用來在物件導向程式設計中建立 "is-a" 關聯性 (或稱子型別) 的模型。

成員 (F#)

描述 F# 物件型別的成員。

參數和引數 (F#)

描述對定義參數以及將引數傳遞至函式、方法和屬性的語言支援, 其中包含如何以傳址方式傳遞的詳細資訊。

運算子多載 (F#)

描述如何在類別或記錄型別以及共用層多載算術運算子。

轉型和轉換 (F#)

描述 F# 對型別轉換的支援。

存取控制 (F#)

描述 F# 的存取控制。 存取控制表示宣告哪些用戶端能夠使用特定程式項目,例如型別、方法和函式等等。

模式比對 (F#)

描述模式,這是轉換輸入資料的規則,在 F# 語言中用於擷取具有模式的比較資料、將資料分解為構成部分,或是以各種方式從資料擷取資訊。

作用中的模式 (F#)

描述作用中的模式。 作用中的模式可讓您定義可細分輸入資料的具名部分。 您可以使用作用中的模式,以自訂方式分解每個部分的資料。

判斷提示 (F#)

描述 assert 運算式,這個偵錯功能可用來測試運算式。 當程式在偵測模式中執行發生錯誤時,判斷提示會顯示系統錯誤對話方塊。

例外狀況處理 (F#)

包含 F# 語言例外處理支援的詳細資訊。

屬性 (F#)

描述可讓中繼資料套用至程式設計建構的屬性。

資源管理:use 關鍵字 (F#)

描述可控制資源初始設定及釋放的關鍵字 use 和 using。

命名空間 (F#)

描述 F# 的命名空間支援。 命名空間可讓您將名稱附加至程式項目群組,將程式碼依相關功能分類。

模組 (F#)

描述模組。 F# 模組是 F# 程式碼群組,例如 F# 程式中的值、型別和函式值。 將程式碼分組成不同模組有助於將相關程式碼整理在同一處,以及避免程式中發生名稱衝突。

匯入宣告:open 關鍵字 (F#)

描述 open 的運作方式。 在程式中使用匯入宣告指定某個模組或命名空間後,就可以直接參考該模組或命名空間內的項目,無須在項目前面冠上完整名稱。

簽章 (F#)

描述簽章和簽章檔。 簽章檔包含一組 F# 程式項目 (例如型別、命名空間和模組) 的公用簽章資訊, 可用於指定這些程式項目的使用時機與對象。

XML 文件 (F#)

描述針對 XML 文件註解 (也稱為三斜線註解) 產生文件檔案的支援。 您可以從 F# 程式碼註解產生文件,就如同其他 .NET 語言一樣。

詳細語法 (F#)

描述未啟用輕量型語法時的 F# 建構語法。 詳細語法是透過程式碼頂端的 #light "off" 指示詞所表示。

F# 型別

下表列出描述 F# 語言支援之型別的參考主題。

標題

描述

值 (F#)

描述值,這是具有特定型別且不可變更內容的資料;值可以是整數或浮點數、字元或文字、清單、序列、陣列、Tuple、已區分的聯集、記錄、類別型別或函式值。

基本型別 (F#)

描述 F# 語言使用的基本型別, 並提供對應的 .NET 型別以及每個型別的最小值和最大值。

單位類型 (F#)

描述 unit 型別,這個型別表示缺少特定值;unit 型別只有單一值,做為沒有或不需要其他值時的預留位置。

字串 (F#)

描述 F# 的字串。 string 型別以一連串的 Unicode 字元表示不可變文字。 string 是 .NET Framework 中 String 的別名。

Tuple (F#)

描述 Tuple,這是不具名但有序之值 (可能是不同的型別) 的群組。

清單 (F#)

描述清單。 F# 的清單是一連串有序且不可變的項目,而且所有項目都是相同型別。

選項 (F#)

描述選項型別。 F# 的選項於不一定有值時使用。 選項有基礎型別,而且可能擁有該型別的值或沒有值。

序列 (F#)

描述序列。 序列是一連串的邏輯項目,所有項目都是相同型別。 個別序列項目只在需要時才會計算,因此在程式中的表示方式與佔用空間,可能會比實際所含項目數量為小。

陣列 (F#)

描述陣列。 陣列是固定大小、以零起始、可變的連續資料元素序列,而且所有元素都是相同型別。

資料錄 (F#)

描述記錄。 記錄表示具名值的簡單彙總,並選擇性搭配成員。

已區分的聯集 (F#)

描述已區分的聯集,此種型別的資料可以是各式各樣具名案例其中任何一種,且每個案例的值和型別也不一定相同。

列舉 (F#)

描述列舉,這是有一組已定義之具名值的型別。 列舉可用來取代常值,讓程式碼更容易閱讀及維護。

參照儲存格 (F#)

描述參考儲存格,這是可讓您以參考語意建立可變變數的儲存位置。

型別縮寫 (F#)

描述型別縮寫,這是型別的替代名稱。

類別 (F#)

描述類別,這是表示可以有屬性、方法和事件之物件的型別。

結構 (F#)

描述結構,這是一種比較精簡的物件型別,適用於資料量較少且行為簡單的型別,效率比類別更好。

介面 (F#)

描述介面,介面可指定其他類別應提供實作的一組相關成員。

抽象類別 (F#)

描述抽象類別,這種類別不見得會實作出所有或部分成員,而是留待衍生類別各自提供實作。

型別擴充 (F#)

描述型別擴充,可讓您將新成員加入至先前定義的物件型別。

彈性型別 (F#)

描述彈性型別。 彈性型別附註表示參數、變數或值的型別與指定的型別相容,而相容性是由類別或介面的物件導向階層中的位置所決定。

委派 (F#)

描述將函式呼叫表示為物件的委派。

測量單位 (F#)

描述測量單位。 F# 中的浮點值可以有通常用來表示長度、容量、質量等的關聯測量單位。

F# 運算式

下表列出描述 F# 運算式的主題。

標題

描述

條件運算式:if... then...else (F#)

描述 if...then...else 運算式,這個運算式會根據指定的布林運算式,執行不同的程式碼分支,並運算出不同的值。

搜尋運算式 (F#)

描述 match 運算式,此種運算式提供分支控制,根據運算式與一組模式的比較結果,決定程式應沿著哪個分支繼續執行。

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

描述 for...to 運算式,這個運算式會重複執行某段迴圈,重複次數等於迴圈變數的範圍值。

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

描述 for...in 運算式,這個迴圈建構會使用可列舉集合 (例如範圍運算式、序列、清單、陣列或其他支援列舉的建構) 中符合模式的所有項目,重複執行一段程式碼。

迴圈:while...do 運算式 (F#)

描述 while...do 運算式,當指定的測試條件為 true 時,就再重複執行一次 (迴圈)。

物件運算式 (F#)

描述物件運算式,這些運算式會根據現有的基底型別、一個介面或一組介面來建立動態建立、匿名物件型別的新執行個體。

延遲運算 (F#)

描述延遲運算,這種運算不會立刻進行,而是等到真的需要運算結果時,才進行運算。

計算運算式 (F#)

描述 F# 中的計算運算式提供便利的語法,撰寫可以使用控制流程建構和繫結進行排序和合併的計算。 它們可以用來提供 Monad 的便利語法,這是一種函式程式設計功能,可用來管理函式程式中的資料、控制項和副作用。 非同步工作流程是一種計算運算式,支援非同步和平行運算。 如需詳細資訊,請參閱非同步工作流程 (F#)

非同步工作流程 (F#)

描述非同步工作流程,這是一種語言功能,可讓您使用與原本撰寫同步程式碼極為相似的方式,來撰寫非同步程式碼。

程式碼引號 (F#)

描述程式碼引號,此語言功能可讓您以程式設計方式產生及使用 F# 程式碼運算式。

編譯器支援的建構

下表列出描述編譯器支援之特殊建構的主題。

主題

描述

編譯器指示詞 (F#)

描述處理器指示詞和編譯器指示詞。

原始碼程式行、檔案與路徑識別項 (F#)

描述識別項 __LINE__、__SOURCE_DIRECTORY__ 和 __SOURCE_FILE__,這些內建值可讓您存取原始程式碼中的行號、目錄和檔案名稱。

請參閱

其他資源

Visual F#

F# 編譯器 (fsc.exe) 參考