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.