开发手册 欢迎您!
软件开发者资料库

F#地图

在F#中,Map是一种特殊类型的集合,将值与键相关联。 以与创建集合类似的方式创建Map。创建Map通过使用Map.empty创建空映射并使用Add函数添加项来创建映射。 下面的例子演示了这一点。例(* Create an empty Map *)let students = Map.empty.

在F#中,Map是一种特殊类型的集合,将值与键相关联。 以与创建集合类似的方式创建Map。

创建Map

通过使用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")]

您可以使用key访问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"]

当你编译和执行程序,它产生以下输出 

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

在Map上的基本操作

添加模块名称

下表是Map上的基本操作 -

函数描述
Add返回与绑定添加到给定的地图新地图。
ContainsKey测试元素是否在地图中的域。
Count在地图上绑定的数量。
IsEmpty如果在地图上没有绑定,则返回true。
Item查找地图中的元素。如果没有绑定存在于地图引发KeyNotFoundException。
Remove从地图中删除域的元素。如果该元素不存在任何异常。
TryFind在地图中查找元素,如果元素在地图的域中,则返回一个值,而不是Noneif。

下面的例子演示了上述一些功能的使用 

(* 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" studentsprintfn "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: 7Found 1502.