- F# 基础教程
- F# - 主页
- F# - 概述
- F# - 环境设置
- F# - 程序结构
- F# - 基本语法
- F# - 数据类型
- F# - 变量
- F# - 运算符
- F# - 决策
- F# - 循环
- F# - 函数
- F# - 字符串
- F# - 选项
- F# - 元组
- F# - 记录
- F# - 列表
- F# - 序列
- F# - 集
- F# - 地图
- F# - 受歧视的工会
- F# - 可变数据
- F# - 数组
- F# - 可变列表
- F# - 可变字典
- F# - 基本 I/O
- F# - 泛型
- F# - 代表
- F# - 枚举
- F# - 模式匹配
- F# - 异常处理
- F# - 类
- F# - 结构
- F# - 运算符重载
- F# - 继承
- F# - 接口
- F# - 事件
- F# - 模块
- F# - 命名空间
- F# 有用资源
- F# - 快速指南
- F# - 有用的资源
- F# - 讨论
F# - 地图
在 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"
地图基本操作
添加模块名称
下表显示了地图上的基本操作 -
成员 | 描述 |
---|---|
添加 | 返回一个新映射,并将绑定添加到给定映射。 |
包含键 | 测试元素是否在地图的域中。 |
数数 | 地图中的绑定数量。 |
是空的 | 如果映射中没有绑定,则返回 true。 |
物品 | 在地图中查找元素。如果映射中不存在绑定,则引发 KeyNotFoundException。 |
消除 | 从映射域中删除一个元素。如果该元素不存在,则不会引发异常。 |
尝试查找 | 在映射中查找一个元素,如果该元素位于映射的域中,则返回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.