- F# 基礎教程
- F# - 首頁
- F# - 概述
- F# - 環境設定
- F# - 程式結構
- F# - 基本語法
- F# - 資料型別
- F# - 變數
- F# - 運算子
- F# - 決策
- F# - 迴圈
- F# - 函式
- F# - 字串
- F# - 可選項 (Options)
- F# - 元組 (Tuples)
- F# - 記錄 (Records)
- F# - 列表 (Lists)
- F# - 序列 (Sequences)
- F# - 集合 (Sets)
- F# - 對映 (Maps)
- F# - 判別聯合 (Discriminated Unions)
- F# - 可變資料
- F# - 陣列 (Arrays)
- F# - 可變列表 (Mutable Lists)
- F# - 可變字典 (Mutable Dictionary)
- F# - 基本輸入/輸出
- F# - 泛型
- F# - 委託 (Delegates)
- F# - 列舉
- F# - 模式匹配
- F# - 異常處理
- F# - 類
- F# - 結構體 (Structures)
- F# - 運算子過載
- F# - 繼承
- F# - 介面
- F# - 事件
- F# - 模組
- F# - 名稱空間
F# - 對映 (Maps)
在 F# 中,對映是一種特殊的集合,它將值與鍵關聯起來。對映的建立方式與集合的建立方式類似。
建立對映
透過使用 Map.empty 建立空對映並使用 Add 函式新增項來建立對映。以下示例演示了這一點:
示例
(* Create an empty Map *)
let students =
Map.empty. (* Creating an empty Map *)
Add("Zara Ali", "1501").
Add("Rishita Gupta", "1502").
Add("Robin Sahoo", "1503").
Add("Gillian Megan", "1504");;
printfn "Map - students: %A" students
(* Convert a list to Map *)
let capitals =
[ "Argentina", "Buenos Aires";
"France ", "Paris";
"Chili", "Santiago";
"Malaysia", " Kuala Lumpur";
"Switzerland", "Bern" ]
|> Map.ofList;;
printfn "Map capitals : %A" capitals
編譯並執行程式後,將產生以下輸出:
Map - students: map
[("Gillian Megan", "1504"); ("Rishita Gupta", "1502"); ("Robin Sahoo", "1503
");
("Zara Ali", "1501")]
Map capitals : map
[("Argentina", "Buenos Aires"); ("Chili", "Santiago"); ("France ", "Paris");
("Malaysia", " Kuala Lumpur"); ("Switzerland", "Bern")]
可以使用鍵訪問對映中的各個元素。
示例
(* Create an empty Map *)
let students =
Map.empty. (* Creating an empty Map *)
Add("Zara Ali", "1501").
Add("Rishita Gupta", "1502").
Add("Robin Sahoo", "1503").
Add("Gillian Megan", "1504");;
printfn "Map - students: %A" students
(*Accessing an element using key *)
printfn "%A" students.["Zara Ali"]
編譯並執行程式後,將產生以下輸出:
Map - students: map
[("Gillian Megan", "1504"); ("Rishita Gupta", "1502"); ("Robin Sahoo", "1503
");
("Zara Ali", "1501")]
"1501"
對映的基本操作
新增模組名稱
下表顯示了對映的基本操作:
| 成員 | 描述 |
|---|---|
| Add | 返回一個新的對映,其中包含新增到給定對映的繫結。 |
| ContainsKey | 測試對映的域中是否存在元素。 |
| Count | 對映中繫結的數量。 |
| IsEmpty | 如果對映中沒有繫結,則返回 true。 |
| Item | 在對映中查詢元素。如果對映中不存在繫結,則引發 KeyNotFoundException。 |
| Remove | 從對映的域中刪除元素。如果元素不存在,則不會引發異常。 |
| TryFind | 在對映中查詢元素,如果元素在對映的域中,則返回 **Some** 值;否則返回 **None**。 |
以下示例演示了上述一些功能的使用:
示例
(* Create an empty Map *)
let students =
Map.empty. (* Creating an empty Map *)
Add("Zara Ali", "1501").
Add("Rishita Gupta", "1502").
Add("Robin Sahoo", "1503").
Add("Gillian Megan", "1504").
Add("Shraddha Dubey", "1505").
Add("Novonil Sarker", "1506").
Add("Joan Paul", "1507");;
printfn "Map - students: %A" students
printfn "Map - number of students: %d" students.Count
(* finding the registration number of a student*)
let found = students.TryFind "Rishita Gupta"
match found with
| Some x -> printfn "Found %s." x
| None -> printfn "Did not find the specified value."
編譯並執行程式後,將產生以下輸出:
Map - students: map
[("Gillian Megan", "1504"); ("Joan Paul", "1507"); ("Novonil Sarker", "1506"
);
("Rishita Gupta", "1502"); ("Robin Sahoo", "1503");
("Shraddha Dubey", "1505"); ("Zara Ali", "1501")]
Map - number of students: 7
Found 1502.
廣告