F # - Mappe

In F #, una mappa è un tipo speciale di set che associa i valori a chiave. Una mappa viene creata in modo simile alla creazione degli insiemi.

Creazione di mappe

Le mappe vengono create creando una mappa vuota utilizzando Map.empty e aggiungendo elementi utilizzando la funzione Aggiungi. Il seguente esempio lo dimostra:

Esempio

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

Quando compili ed esegui il programma, restituisce il seguente output:

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

È possibile accedere ai singoli elementi nella mappa utilizzando la chiave.

Esempio

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

Quando compili ed esegui il programma, restituisce il seguente output:

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

Operazioni di base sulle mappe

Aggiungi il nome del modulo

La tabella seguente mostra le operazioni di base sulle mappe:

Membro Descrizione
Inserisci Restituisce una nuova mappa con l'associazione aggiunta alla mappa data.
ContainsKey Verifica se un elemento si trova nel dominio della mappa.
Contare Il numero di associazioni nella mappa.
È vuoto Restituisce vero se non ci sono associazioni nella mappa.
Articolo Cerca un elemento nella mappa. Genera KeyNotFoundException se non esiste alcuna associazione nella mappa.
Rimuovere Rimuove un elemento dal dominio della mappa. Non viene sollevata alcuna eccezione se l'elemento non è presente.
TryFind Cerca un elemento nella mappa, restituendo un file Some valore se l'elemento è nel dominio della mappa e None altrimenti.

L'esempio seguente mostra gli usi di alcune delle funzionalità di cui sopra:

Esempio

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

Quando compili ed esegui il programma, restituisce il seguente output:

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.