F # - Cartes

En F #, une carte est un type spécial d'ensemble qui associe les valeurs à la clé. Une carte est créée de la même manière que les ensembles sont créés.

Créer des cartes

Les cartes sont créées en créant une carte vide à l'aide de Map.empty et en ajoutant des éléments à l'aide de la fonction Ajouter. L'exemple suivant illustre ceci -

Exemple

(* 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

Lorsque vous compilez et exécutez le programme, il produit la sortie suivante -

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")]

Vous pouvez accéder à des éléments individuels de la carte à l'aide de la touche.

Exemple

(* 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"]

Lorsque vous compilez et exécutez le programme, il produit la sortie suivante -

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

Opérations de base sur les cartes

Ajouter un nom de module

Le tableau suivant présente les opérations de base sur les cartes -

Membre La description
Ajouter Renvoie une nouvelle carte avec la liaison ajoutée à la carte donnée.
ContientKey Teste si un élément est dans le domaine de la carte.
Compter Le nombre de liaisons dans la carte.
Est vide Renvoie true s'il n'y a pas de liaisons dans la carte.
Article Recherchez un élément sur la carte. Déclenche KeyNotFoundException si aucune liaison n'existe dans la carte.
Retirer Supprime un élément du domaine de la carte. Aucune exception n'est déclenchée si l'élément n'est pas présent.
EssayerTrouver Rechercher un élément dans la carte, renvoyer un Some valeur si l'élément est dans le domaine de la carte et None si non.

L'exemple suivant montre les utilisations de certaines des fonctionnalités ci-dessus -

Exemple

(* 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."

Lorsque vous compilez et exécutez le programme, il produit la sortie suivante -

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.