F# 語言參考
本節是 F# 語言參考,此語言是以 .NET 平台為目標、多重開發架構的程式設計語言。 F# 語言支援函式、物件導向和命令式程式設計模型。
F# 語彙基元
下表顯示做為 F# 語彙基元之關鍵字、符號和常值的參考主題。
標題 |
描述 |
---|---|
包含所有 F# 語言關鍵字相關資訊的連結。 |
|
包含 F# 語言使用之符號和運算子的表格。 |
|
描述 F# 常值的語法以及如何指定 F# 常值的型別資訊。 |
F# 語言概念
下表列出描述語言概念的參考主題。
標題 |
描述 |
---|---|
函式是所有程式設計語言的基礎程式執行單位。 如同其他語言,F# 函式有名稱、可以有參數並且接受引數,而且也有主體。 F# 也支援函式程式設計建構,例如將函式視為值、在運算式中使用不具名函式、複合函式以形成新函式、局部調用函式,以及透過部分套用函式引數隱含定義函式。 |
|
描述 F# 中所使用的型別以及 F# 型別的命名及描述方式。 |
|
描述 F# 編譯器如何推斷值、變數、參數和傳回值的型別。 |
|
描述 F# 的泛型建構。 |
|
描述繼承,這是用來在物件導向程式設計中建立 "is-a" 關聯性 (或稱子型別) 的模型。 |
|
描述 F# 物件型別的成員。 |
|
描述對定義參數以及將引數傳遞至函式、方法和屬性的語言支援, 其中包含如何以傳址方式傳遞的詳細資訊。 |
|
描述如何在類別或記錄型別以及共用層多載算術運算子。 |
|
描述 F# 對型別轉換的支援。 |
|
描述 F# 的存取控制。 存取控制表示宣告哪些用戶端能夠使用特定程式項目,例如型別、方法和函式等等。 |
|
描述模式,這是轉換輸入資料的規則,在 F# 語言中用於擷取具有模式的比較資料、將資料分解為構成部分,或是以各種方式從資料擷取資訊。 |
|
描述作用中的模式。 作用中的模式可讓您定義可細分輸入資料的具名部分。 您可以使用作用中的模式,以自訂方式分解每個分割的資料。 |
|
描述 assert 運算式,這個偵錯功能可用來測試運算式。 偵錯模式失敗時,判斷提示會產生系統錯誤對話方塊。 |
|
包含 F# 語言例外狀況處理支援的詳細資訊。 |
|
描述可讓中繼資料套用至程式設計建構的屬性。 |
|
描述可控制資源初始設定及釋放的關鍵字 use 和 using。 |
|
描述 F# 的命名空間支援。 命名空間可讓您將名稱附加至程式項目群組,將程式碼依相關功能分類。 |
|
描述模組。 F# 模組是 F# 程式碼群組,例如 F# 程式中的值、型別和函式值。 將程式碼分組成不同模組有助於將相關程式碼整理在同一處,以及避免程式中發生名稱衝突。 |
|
描述 open 的運作方式。 在程式中使用匯入宣告指定某個模組或命名空間後,就可以直接參考該模組或命名空間內的項目,無須在項目前面冠上完整名稱。 |
|
描述簽章和簽章檔。 簽章檔包含一組 F# 程式項目 (例如型別、命名空間和模組) 的公用簽章資訊, 可用於指定這些程式項目的存取範圍。 |
|
描述針對 XML 文件註解 (也稱為三斜線註解) 產生文件檔案的支援。 您可以從 F# 程式碼註解產生文件,就如同其他 .NET 語言一樣。 |
|
描述未啟用輕量型語法時的 F# 建構語法。 詳細語法是透過程式碼頂端的 #light "off" 指示詞所表示。 |
F# 型別
下表列出描述 F# 語言支援之型別的參考主題。
標題 |
描述 |
---|---|
描述值,這是具有特定型別且不可變更內容的資料;值可以是整數或浮點數、字元或文字、清單、序列、陣列、Tuple、已區分的聯集、記錄、類別型別或函式值。 |
|
描述 F# 語言使用的基本型別, 並提供對應的 .NET 型別以及每個型別的最小值和最大值。 |
|
描述 unit 型別,這個型別表示缺少特定值;unit 型別只有單一值,做為沒有或不需要其他值時的預留位置。 |
|
描述 F# 的字串。 string 型別以一連串的 Unicode 字元表示不可變文字。 string 是 .NET Framework 中 String 的別名。 |
|
描述 Tuple,這是不具名但有序之值 (可能是不同的型別) 的群組。 |
|
F# 功能集合型別,包括型別為陣列、 清單、 序列 (seq 功能)、 地圖和集合的概觀。 |
|
描述清單。 F# 的清單是一連串有序且不可變的項目,而且所有項目都是相同型別。 |
|
描述選項型別。 F# 的選項於不一定有值時使用。 選項有基礎型別,而且可能擁有該型別的值或沒有值。 |
|
描述序列。 序列是一連串的邏輯項目,所有項目都是相同型別。 個別序列項目只在需要時才會計算,因此在程式中的表示方式與佔用空間,可能會比實際所含項目數量為小。 |
|
描述陣列。 陣列是固定大小、以零起始、可變的連續資料元素序列,而且所有元素都是相同型別。 |
|
描述記錄。 記錄表示具名值的簡單彙總,並選擇性搭配成員。 |
|
描述已區分的聯集,此種型別的資料可以是各式各樣具名案例其中任何一種,且每個案例的值和型別也不一定相同。 |
|
描述列舉,這是有一組已定義之具名值的型別。 列舉可用來取代常值,讓程式碼更容易閱讀及維護。 |
|
描述參考儲存格,這是可讓您以參考語意建立可變變數的儲存位置。 |
|
描述型別縮寫,這是型別的替代名稱。 |
|
描述類別,這是表示可以有屬性、方法和事件之物件的型別。 |
|
描述結構,這是一種比較精簡的物件型別,適用於資料量較少且行為簡單的型別,效率比類別更好。 |
|
描述介面,介面可指定其他類別應提供實作的一組相關成員。 |
|
描述抽象類別,這種類別不見得會實作出所有或部分成員,而是留待衍生類別各自提供實作。 |
|
描述型別擴充,可讓您將新成員加入至先前定義的物件型別。 |
|
描述彈性型別。 彈性型別附註表示參數、變數或值的型別與指定的型別相容,而相容性是由類別或介面的物件導向階層中的位置所決定。 |
|
描述將函式呼叫表示為物件的委派。 |
|
描述測量單位。 F# 中的浮點值可以有通常用來表示長度、容量、質量等的關聯測量單位。 |
|
將告訴您提供的型別,並提供有關使用內建的型別提供者來存取資料庫和 web 服務逐步解說的連結。 |
F# 運算式
下表列出描述 F# 運算式的主題。
標題 |
描述 |
---|---|
描述 if...then...else 運算式,這個運算式會根據指定的布林運算式,執行不同的程式碼分支,並運算出不同的值。 |
|
描述 match 運算式,此種運算式提供分支控制,根據運算式與一組模式的比較結果,決定程式應沿著哪個分支繼續執行。 |
|
描述 for...to 運算式,這個運算式會重複執行某段迴圈,重複次數等於迴圈變數的範圍值。 |
|
描述 for...in 運算式,這個迴圈建構會使用可列舉集合 (例如範圍運算式、序列、清單、陣列或其他支援列舉的建構) 中符合模式的所有項目,重複執行一段程式碼。 |
|
描述 while...do 運算式,當指定的測試條件為 true 時,就再重複執行一次 (迴圈)。 |
|
描述物件運算式,這些運算式會根據現有的基底型別、一個介面或一組介面來建立動態建立、匿名物件型別的新執行個體。 |
|
描述延遲運算,這種運算不會立刻進行,而是等到真的需要運算結果時,才進行運算。 |
|
描述 F# 中的計算運算式提供便利的語法,撰寫可以使用控制流程建構和繫結進行排序和合併的計算。 它們可以用來提供 Monad 的便利語法,這是一種函式程式設計功能,可用來管理函式程式中的資料、控制項和副作用。 非同步工作流程是一種計算運算式,支援非同步和平行運算。 如需詳細資訊,請參閱非同步工作流程 (F#)。 |
|
描述非同步工作流程,這是一種語言功能,可讓您使用與原本撰寫同步程式碼極為相似的方式,來撰寫非同步程式碼。 |
|
描述程式碼引號,此語言功能可讓您以程式設計方式產生及使用 F# 程式碼運算式。 |
|
說明查詢運算式的語言功能,會實作 LINQ F#,並可讓您撰寫針對資料來源或可列舉集合的查詢。 |
編譯器支援的建構
下表列出描述編譯器支援之特殊建構的主題。
主題 |
描述 |
---|---|
描述處理器指示詞和編譯器指示詞。 |
|
描述識別項 __LINE__、__SOURCE_DIRECTORY__ 和 __SOURCE_FILE__,這些內建值可讓您存取原始程式碼中的行號、目錄和檔案名稱。 |