F# 語言參考

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

組織 F# 程式碼

下表顯示與組織 F# 程式碼相關的參考文章。

標題 描述
命名空間 了解 F# 中的命名空間支援。 命名空間可讓您將名稱附加至程式項目群組,將程式碼依相關功能分類。
單元 深入了解模組。 F# 模組就像命名空間,也可以包含值和函式。 程式碼分組成不同模組有助於將相關程式碼整理到同一處,以及避免程式中發生名稱衝突。
open 宣告 了解 open 的運作方式。 open 宣告可讓您在不使用完整名稱的情況下,指定參考其元素的模組、命名空間或型別。
簽章 了解簽章和簽章檔。 簽章檔案包含一組 F# 程式項目的公開金鑰相關資訊,例如類型、命名空間和模組。 它可用來指定這些程式項目的協助工具。
存取控制 了解 F# 中的存取控制。 存取控制表示宣告哪些用戶端能夠使用特定程式元素,例如型別、方法和函式等等。
XML 文件 了解從 XML 文件註解 (也稱為三斜線註解) 產生文件檔的支援。 您可以從 F# 的程式碼註解產生文件,如同其他 .NET 語言一樣。

常值和字串

下表顯示描述 F# 中常值和字串的參考文章。

標題 描述
常值 了解 F# 中常值的語法,以及如何指定 F# 常值的型別資訊。
字串 了解 F# 中的字串。 string 類型以一連串的 Unicode 字元表示不可變文字。 stringSystem.String 在 .NET 中的別名。
插入字串 了解差補字串,這是一種特殊形式的字串,可讓您直接在其中內嵌 F# 運算式。

值和函式

下表顯示描述值、let 繫結和函式相關語言概念的參考文章。

標題 描述
了解值,這是具有特定型別的不可變數量;值可以是整數或浮點數、字元或文字、清單、序列、陣列、元組、差別聯集、記錄、類別型別或函式值。
函數 函式是所有程式設計語言的基礎程式執行單位。 F# 函式有名稱、可以有參數並且接受引數,而且也有主體。 F# 也支援函式程式設計建構,例如將函式視為值、在運算式中使用不具名函式、組合函式以形成新函式、局部調用函式,以及透過部分套用函式引數的隱含定義函式。
函式運算式 了解如何使用 F# 'fun' 關鍵字來定義 Lambda 運算式,這是一個匿名函式。

迴圈和條件

下表列出文章說明 F# 迴圈和條件。

標題 描述
條件運算式:if...then...else 了解 if...then...else 運算式,這個運算式會根據指定的布林運算式,執行不同的程式碼分支,也會運算出不同的值。
迴圈:for...in 運算式 了解 for...in 運算式,這個迴圈建構會使用可列舉集合 (例如範圍運算式、序列、清單、陣列或其他支援列舉的建構) 中符合模式的所有項目,重複執行一段程式碼。
迴圈:for...to 運算式 了解 for...to 運算式,這個運算式會重複執行某段迴圈,重複次數等於迴圈變數的範圍值。
迴圈:while...do 運算式 了解 while...do 運算式,當指定的測試條件為 true 時,用來重複執行一次 (迴圈)。

模式比對

下表顯示說明語言概念的參考主題。

標題 描述
模式比對 了解模式,這是轉換輸入資料的規則且會在整個 F# 中使用。 您可以比較資料與模式,將資料分解為構成組件,或透過各種方式來擷取資料中的資訊。
比對運算式 了解 match 運算式,此種運算式提供分支控制,可根據運算式與一組模式的比較結果,決定程式應沿著哪個分支繼續執行。
現用模式 了解作用中模式。 作用中的模式可讓您定義可細分輸入資料的具名部分。 您可以使用作用中的模式,以自訂方式分解每個部分的資料。

例外狀況處理

下表列出的參考文章說明與例外狀況處理相關的語言概念。

標題 描述
例外狀況處理 包含使用 F# 的例外狀況處理支援相關資訊。
try...with 運算式 了解如何使用 try...with 運算式來處理例外狀況。
try...finally 運算式 了解 F# try...finally 運算式如何讓您執行清除程式碼,即使程式碼區塊擲出例外狀況也一樣。
use 關鍵字 了解可控制資源初始設定及解除的關鍵字 useusing
判斷提示 了解 assert 運算式,這個偵錯功能可用來測試運算式。 當運算式在偵測模式中發生錯誤時,判斷提示會顯示系統錯誤對話方塊。

型別和型別推斷

下表列出的參考文章說明型別和型別推斷在 F# 中的運作方式。

標題 描述
類型 了解 F# 中使用的型別,以及 F# 型別的命名及描述方式。
基本類型 了解 F# 中使用的基本型別。 它也會提供對應的 .NET 類型以及每個類型的最小值和最大值。
單位類型 了解 unit 型別,這個型別表示缺少特定值;unit 型別只有單一值,作為沒有或不需要其他值時的預留位置。
類型縮寫 了解型別縮寫,這是型別的替代名稱。
類型推斷 了解 F# 編譯器如何推斷值、變數、參數和傳回值的型別。
轉型和轉換 了解 F# 中對型別轉換的支援。
泛型 了解 F# 中的泛型建構。
自動一般化 了解 F# 如何自動將引數和函式型別一般化,以便盡可能使用多個型別。
條件約束 了解套用至泛型型別參數的條件約束,以指定泛型型別或函式中型別引數的需求。
彈性類型 了解彈性型別。 彈性型別註釋表示參數、變數或值的型別與指定型別相容,而相容性是由類別或介面的物件導向階層中的位置所決定。
測量單位 了解測量單位。 F# 中的浮點值可以有通常用來表示長度、容量、質量等的關聯測量單位。
Byrefs 了解 F# 中的 byref 和 byref-like 型別,這些型別用於低階程式設計。

元組、清單、集合、選項

下表列出的參考文件說明 F# 支援的型別。

標題 描述
元組 了解元組,元組是由型別可能不同、不具名但有序的值組成的群組。
集合 F# 函式集合類型的概觀,包括陣列、清單、序列 (seq)、對應和集的類型。
清單 了解清單。 F# 的清單是一連串有序且不可變的項目,而所有項目的類型都相同。
選項 了解選項型別。 F# 中的選項於不一定有值時使用。 選項有基礎類型,而且可能擁有該類型的值或沒有值。
陣列 了解陣列。 陣列是一系列固定大小、以零起始、可變的連續資料項目,而所有項目的類型都相同。
序列 了解序列。 序列是一連串的邏輯項目,而所有項目的類型都相同。 個別序列元素只在必要時才會計算,因此表示法可能會比常值元素計數還小。
序列運算式 了解序列運算式,讓您依需求產生資料序列。
參考儲存格 了解參考儲存格,這些儲存格是可讓您以參考語意建立可變變數的儲存位置。

記錄和差異聯集

下表列出的參考文章說明 F# 支援的記錄和差異聯集型別定義。

標題 描述
記錄 了解記錄。 記錄表示具名值的簡單彙總,並選擇性地搭配成員。
匿名記錄 了解如何建構及使用匿名記錄,這是可協助操作資料的語言功能。
已區分的聯集 了解差異聯集,其支援的值可以是各式各樣具名案例的其中任何一種,且每個聯集的值和型別也不一定相同。
結構 了解結構,這是一種比較精簡的物件類型,適用於資料量較少且行為簡單的型別,效率比類別型別更好。
列舉 了解列舉,這是具有一組已定義的具名值類型。 列舉可用來取代常值,讓程式碼更容易閱讀及維護。

物件程式設計

下表列出的參考文章說明 F# 物件程式設計。

標題 描述
類別 了解類別,其型別代表的物件可以有屬性、方法和事件。
介面 了解介面,可指定其他類別實作的相關成員集。
抽象類別 了解抽象類別,這種類別不見得會實作出所有或部分成員,而是留待衍生類別各自提供實作。
類型擴充 了解型別擴充,可讓您將成員新增至先前定義的物件類型。
委派 了解將函式呼叫表示為物件的委派。
繼承 了解繼承,這是用來在物件導向程式設計中建立 "is-a" 關聯性 (或稱子類型) 的模型。
成員 了解 F# 物件類型的成員。
參數和引數 了解對定義參數以及將引數傳遞至函式、方法和屬性的語言支援。 其中包含如何以參考方式傳遞的詳細資訊。
運算子多載 了解如何在類別或記錄型別以及共用層多載算術運算子。
物件運算式 了解物件運算式,這些運算式會根據現有的基底類型、一個介面或一組介面來建立動態建立、匿名物件類型的新執行個體。

非同步、工作和延遲

下表列出描述 F# 非同步、工作和延遲運算式的主題。

標題 描述
非同步運算式 了解非同步運算式,可讓您使用與原本撰寫同步程式碼極為相似的方式,來撰寫非同步程式碼。
工作運算式 了解工作運算式,這是撰寫與 .NET 程式碼 (取用或產生 .NET 程式碼) 交互操作的非同步程式碼的替代方式。
延遲運算式 了解延遲運算式,此運算式的計算不會立刻進行,而是等到真的需要評估結果時,才進行評估。

計算運算式和查詢

下表列出的主題說明 F# 計算運算式和查詢。

標題 描述
計算運算式 了解 F# 中的計算運算式提供便利的語法,用於撰寫可以使用控制流程建構和繫結進行排序和合併的計算。 它們可用來管理函式程式中的資料、控制項和副作用。
查詢運算式 了解查詢運算式,這種語言功能可為 F# 實作 LINQ,並且可讓您針對資料來源或可列舉集合撰寫查詢。

屬性、反映、引號和純文字格式設定

下表列出的文章說明 F# 反射功能,包括屬性、引號、nameof 和純文字格式設定。

標題 描述
屬性 了解 F# 屬性可將中繼資料套用至程式設計建構。
nameof 了解 nameof 運算子,這是一項中繼程式設計功能,可讓您在原始程式碼中產生任何符號的名稱。
呼叫端資訊 了解如何使用呼叫端資訊引數屬性,從方法中取得呼叫端資訊。
原始碼程式行、檔案與路徑識別項 描述識別項 __LINE____SOURCE_DIRECTORY____SOURCE_FILE__,這些內建值可讓您存取原始程式碼中的行號、目錄和檔案名稱。
程式碼引號 了解程式碼引號,此語言功能可讓您以程式設計方式產生及使用 F# 程式碼運算式。
純文字格式 了解如何在 F# 應用程式和指令碼中使用 sprintf 和其他純文字格式設定。

型別提供者

下表列出的文章說明 F# 型別提供者。

標題 描述
型別提供者 了解型別提供者,並找出逐步解說的連結以了解如何使用內建的型別提供者來存取資料庫和 Web 服務。
建立型別提供者 藉由檢查數個說明基本概念的簡單型別提供者,了解如何建立您自己的 F# 型別提供者。

F# 核心程式庫 API 參考

F# 核心程式庫 (FSharp.Core) API 參考 是所有 F# 核心程式庫命名空間、模組、型表和函式的參考。

參考資料表

下表顯示的參考文章提供作為 F# 語彙基元之關鍵字、符號和常值的表格。

標題 描述
關鍵字參考 包含所有 F# 語言關鍵字相關資訊的連結。
符號和運算子參考 包含在 F# 中所使用符號和運算子的表格。

編譯器支援的建構

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

主題 描述
編譯器選項 描述 F# 編譯器的命令列選項。
編譯器指示詞 描述 F# 編譯器支援的處理器指示詞和編譯器指示詞。