F # - Karten
In F # ist eine Karte eine spezielle Art von Menge, die die Werte mit dem Schlüssel verknüpft. Eine Karte wird auf ähnliche Weise erstellt wie Sets.
Karten erstellen
Karten werden erstellt, indem mit Map.empty eine leere Karte erstellt und mit der Funktion Hinzufügen Elemente hinzugefügt werden. Das folgende Beispiel zeigt dies -
Beispiel
(* 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
Wenn Sie das Programm kompilieren und ausführen, wird die folgende Ausgabe ausgegeben:
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")]
Mit dem Schlüssel können Sie auf einzelne Elemente in der Karte zugreifen.
Beispiel
(* 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"]
Wenn Sie das Programm kompilieren und ausführen, wird die folgende Ausgabe ausgegeben:
Map - students: map
[("Gillian Megan", "1504"); ("Rishita Gupta", "1502"); ("Robin Sahoo", "1503
");
("Zara Ali", "1501")]
"1501"
Grundlegende Operationen auf Karten
Modulnamen hinzufügen
Die folgende Tabelle zeigt die grundlegenden Operationen auf Karten -
Mitglied | Beschreibung |
---|---|
Hinzufügen | Gibt eine neue Karte mit der Bindung zurück, die der angegebenen Karte hinzugefügt wurde. |
Enthält Schlüssel | Testet, ob sich ein Element in der Domäne der Karte befindet. |
Anzahl | Die Anzahl der Bindungen in der Karte. |
Ist leer | Gibt true zurück, wenn die Karte keine Bindungen enthält. |
Artikel | Suchen Sie ein Element in der Karte. Löst eine KeyNotFoundException aus, wenn in der Map keine Bindung vorhanden ist. |
Entfernen | Entfernt ein Element aus der Domäne der Karte. Es wird keine Ausnahme ausgelöst, wenn das Element nicht vorhanden ist. |
TryFind | Suchen Sie ein Element in der Karte und geben Sie a zurück Some Wert, wenn sich das Element in der Domäne der Karte befindet und None wenn nicht. |
Das folgende Beispiel zeigt die Verwendung einiger der oben genannten Funktionen -
Beispiel
(* 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."
Wenn Sie das Programm kompilieren und ausführen, wird die folgende Ausgabe ausgegeben:
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.