在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
编译并执行程序时,将产生以下输出-
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"]
编译并执行程序时,将产生以下输出-
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."
编译并执行程序时,将产生以下输出-
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.
参考链接
https://www.learnfk.com/fsharp/fsharp-maps.html
标签:Map,映射,students,无涯,Maps,Add,Zara,printfn,empty From: https://blog.51cto.com/u_14033984/8604945