F#映射(Maps)

/ / F#映射(Maps)

在F#中,字典(Maps)是一种特殊的集合,将值(value)与键(key)相关联。

创建字典

通过使用Map.empty创建空Map并使用添加功能添加项目来创建Map。以下示例演示了这一点-

(* 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

编译并执行程序时,将产生以下输出-

无涯教程网

链接:https://www.learnfk.comhttps://www.learnfk.com/fsharp/fsharp-maps.html

来源:LearnFk无涯教程网

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")]

您可以使用键访问Map中的各个元素。

(* 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"]

编译并执行程序时,将产生以下输出-

无涯教程网

链接:https://www.learnfk.comhttps://www.learnfk.com/fsharp/fsharp-maps.html

来源:LearnFk无涯教程网

Map - students: map
[("Gillian Megan", "1504"); ("Rishita Gupta", "1502"); ("Robin Sahoo", "1503
");
("Zara Ali", "1501")]
"1501"

基本操作

下表显示了Map上的基本操作-

方法 说明
Add 返回新Map,并将绑定添加到给定Map。
ContainsKey 测试元素是否在Map的域中。
Count Map中的绑定数。
IsEmpty 如果Map中没有绑定,则返回true。
Item 在Map中查找元素。如果Map中没有绑定,则引发KeyNotFoundException。
Remove 从Map的域中删除一个元素。如果元素不存在,则不会引发异常。
TryFind 在Map中查找元素,如果元素在Map的域中,则返回 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."

编译并执行程序时,将产生以下输出-

无涯教程网

链接:https://www.learnfk.comhttps://www.learnfk.com/fsharp/fsharp-maps.html

来源:LearnFk无涯教程网

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.

祝学习愉快! (发现内容有误?请选中要编辑的内容 -> 右键 -> 修改 -> 提交!帮助我们改进教程质量)

精选教程推荐

👇 以下精选教程可能对您有帮助,拓展您的技术视野

AI 大模型企业前沿实践 -〔极客时间训练营〕

大模型应用开发实战 -〔黄佳〕

超级访谈:对话道哥 -〔吴翰清(道哥)〕

自动化测试高手课 -〔柳胜〕

技术面试官识人手册 -〔熊燚(四火)〕

消息队列高手课 -〔李玥〕

从0打造音视频直播系统 -〔李超〕

算法面试通关40讲 -〔覃超〕

深入浅出区块链 -〔陈浩〕

📝 好记忆不如烂笔头,留下您的学习笔记吧!

暂无学习笔记,成为第一个分享的人吧!

您的笔记将帮助成千上万的学习者