Una map
è un tipo di contenitore che contiene coppie chiave-valore, che sono mappature da un valore a un altro. Gli elementi di una mappa sono ordinati in base all'ordine delle coppie chiave-valore al momento della creazione della mappa e puoi accedere agli elementi nella mappa utilizzando le chiavi univoche che hai definito.
Ad esempio, se vuoi tenere il conto di quante volte incontri una parola, puoi creare una mappa utilizzando la parola come chiave e il suo numero come valore.
WordCount : [string]int = map{"mela" => 11, "pera" => 7}
Fai clic sull'immagine per ingrandirla.
Se usi la stessa chiave più volte quando inizializzi una mappa, questa manterrà solo l'ultimo valore fornito per quella chiave. Nell'esempio seguente, WordCount
avrà solo la coppia chiave-valore "apple" => 2
. Le coppie "apple" => 0
e "apple" => 1
vengono scartate.
WordCount : [string]int = map{"mela" => 0, "mela" => 1, "mela" => 2}
Tipi di chiave supportati
Le coppie chiave-valore possono essere di qualsiasi tipo, purché il tipo di chiave sia confrontabile, perché deve esserci un modo per verificare se una chiave esiste già per una mappa.
I seguenti tipi possono essere utilizzati come chiavi:
- logic
- int
- float
- char
- string
- enum
- Una classe, se è confrontabile
- Un'opzione, se il tipo di elemento è confrontabile
- Un array, se il tipo di elemento è confrontabile
- Una mappa, se i tipi di chiave e di valore sono confrontabili
- Una tupla se tutti gli elementi della tupla sono confrontabili
Lunghezza mappa
Puoi ottenere il numero di coppie chiave-valore in una mappa accedendo al campo Length
della mappa. Ad esempio, map{"a" => "mela", "b" => "pera", "c" => "dolciumi"}.Length
restituisce 3.
Accesso agli elementi di una mappa
Puoi accedere a un elemento in una mappa utilizzando una chiave, ad esempio WordCount["mela"]
.
L'accesso a un elemento di una mappa è un'espressione fallibile e si può utilizzare solo in un contesto di erorre, come ad esempio un'espressione if
. Ad esempio:
ExampleMap : [string]string = map{"a" => "mela", "b" => "pera", "c" => "dolciumi"}
for (Key->Value : ExampleMap):
Print("{Value} in ExampleMap at key {Key}")
Chiave | "a" | "b" | "c" |
Valore | "mela" | "orso" | "dolciumi" |
Aggiunta e modifica degli elementi di una mappa
Puoi aggiungere elementi a una variabile mappa impostando la chiave di una mappa su un valore specifico. Ad esempio set ExampleMap["d"] = 4
. Le coppie chiave-valore esistenti si possono aggiornare assegnando un valore a una chiave già esistente nella mappa.
L'aggiunta di un elemento a una mappa è un'espressione fallibile e si può utilizzare solo in un contesto di errore, come un'espressione if
. Ad esempio:
var ExampleMap : [string]int = map{"a" => 1, "b" => 2, "c" => 3}
# Modifica di un livello esistente
if (set ExampleMap["b"] = 3, ValueOfB := ExampleMap["b"]):
Print("Updated key b in ExampleMap to {ValueOfB}")
# Aggiunta di un nuovo elemento
if (set ExampleMap["d"] = 4, ValueOfD := ExampleMap["d"]):
Print("Added a new key-value pair to ExampleMap with value {ValueOfD}")
Rimozione di elementi da una mappa
Gli elementi si possono rimuovere da una variabile mappa creando una nuova mappa che escluda la chiave che vuoi rimuovere. Gli elementi si possono rimuovere da una variabile mappa creando una nuova mappa che escluda la chiave che vuoi rimuovere. Di seguito viene fornito un esempio di funzione che fornisce la rimozione da mappe [string]int
.
# Rimuove un elemento dalla mappa data e restituisce una nuova mappa senza quell'elemento
RemoveKeyFromMap(ExampleMap:[string]int, ElementToRemove:string):[string]int=
var NewMap:[string]int = map{}
# Concatena le chiavi di ExampleMap in NewMap, escluso ElementToRemove
for (Key -> Value : ExampleMap, Key <> ElementToRemove):
set NewMap = ConcatenateMaps(NewMap, map{Key => Value})
return NewMap