Indipendentemente dal nome, le mappe forniscono versatilità, dati rapidi ed efficienti, aggiornamenti ed elimina utilizzando il set di chiavi uniche.
L'obiettivo principale di questo tutorial è di guidarti attraverso la creazione e l'uso di mappe nel linguaggio di programmazione Go.
Vai a creare mappa
Esistono due modi per creare una mappa nel linguaggio di programmazione Go.
Mappa letterale
Il primo metodo è utilizzare una mappa delle parole chiave seguita dal tipo di dati della chiave (racchiusa tra parentesi quadrate) e dal tipo di dati dei valori.
Una volta definita la mappa, è possibile inserire l'insieme di coppie di valore chiave all'interno di una coppia di bretelle.
La sintassi è come mostrata:
mappa [key] valore
Chiave: valore
Le mappe sono molto utili durante la memorizzazione di dati correlati, come le informazioni dell'utente. Ad esempio, il seguente codice crea una mappa che memorizza le informazioni dell'utente.
user_info: = map [string] string
"id": "1",
"Nome": "Jonh Doe",
"Dipartimento": "Sviluppatore di giochi",
"Stipendio": "$ 140.000",
"Paese": "Bulgaria",
Si noti che le coppie di valori chiave della mappa sono racchiuse all'interno delle parentesi graffe. Il valore a sinistra del colon rappresenta la chiave, mentre il valore a destra rappresenta il valore associato.
Nell'esempio sopra, formatiamo le coppie di valore chiave come JSON per una leggibilità più facile; Tuttavia, puoi avere un liner come:
user_info: = map [string] string
"Id": "1", "Nome": "Jonh Doe", "Dipartimento": "Game Developer", "Stipendio": "$ 140.000", "Paese": "Bulgaria",
Assicurarsi di separare ogni coppia di valore chiave con una virgola.
Approccio funzionale
Il secondo metodo che puoi utilizzare per creare una mappa in GO è la funzione Make. Questa è una funzione integrata che consente di passare il tipo di mappa per creare. Restituisce una mappa inizializzata. La sintassi è come mostrato di seguito:
make (map [key_type] value_type)
La funzione restituirà una mappa vuota.
È possibile assegnare una mappa a una variabile come altri linguaggi di programmazione, come mostrato negli esempi sopra.
Per visualizzare i valori chiave nell'array, è possibile utilizzare FMT.Metodo println come mostrato nell'esempio seguente:
Pacchetto principale
Importa "FMT"
func main ()
user_info: = map [string] string
"Id": "1", "Nome": "Jonh Doe", "Dipartimento": "Game Developer", "Stipendio": "$ 140.000", "Paese": "Bulgaria",
fmt.Println ("mappe:", user_info)
Il codice sopra dovrebbe restituire l'output come mostrato:
::produzione
Mappe: mappa [Paese: Bulgaria Dipartimento: Game Developer ID: 1 Nome: Jonh Doe Stipendio: $ 140.000]
Accesso agli elementi della mappa
Per ottenere il valore memorizzato in una mappa, puoi usare la sua chiave univoca. Golang dovrebbe restituire il valore associato alla chiave specificata.
Per esempio:
fmt.Println (user_info ["nome"])
Lo snippet sopra deve restituire il valore associato al tasto "nome" dalla mappa user_info.
L'output è come mostrato "
::produzione
Jonh Doe
Poiché ogni chiave in una mappa è univoca, il codice sopra dovrebbe sempre restituire un singolo valore associato a una chiave se esiste.
Quindi, fare uso di mappe è efficiente per le informazioni correlate.
Mappa iterazione
Viene la domanda successiva, come si fa a iterare sugli oggetti in una mappa? A differenza di altri linguaggi di programmazione, che forniscono funzioni integrate per recuperare chiavi e valori, GO non lo fa.
Tuttavia, ti consente di iterare su una mappa utilizzando l'operatore della gamma.
Prendiamo l'esempio della mappa user_info che abbiamo creato in precedenza. Possiamo utilizzare l'operatore di intervallo per iterare le chiavi e i valori della mappa, come mostrato nel codice di esempio seguente:
per k, v: = range user_info
fmt.Printf (" %q -> %q \ n", k, v)
Nel codice sopra, andare iterirà sugli elementi e restituirà ogni chiave e il suo valore associato. Si noti che GO creerà le variabili con il tipo set. Ad esempio, sia la chiave che il valore sono stringhe; Quindi, possiamo utilizzare il formatter %q per stampare il suo valore utilizzando la funzione printf.
L'output risultante è come mostrato:
"id" -> "1"
"Nome" -> "Jonh Doe"
"Dipartimento" -> "Game Developer"
"Stipendio" -> "$ 140.000"
"Paese" -> "Bulgaria"
Cosa succede quando è necessario accedere solo alle chiavi? È possibile dichiarare una variabile per archiviare le chiavi e quindi utilizzare l'operatore di gamma in tale scenario.
Considera l'esempio mostrato di seguito:
tasti: = [] string
per k: = range user_info
tasti = append (tasti, k)
fmt.Printf ("%q", tasti)
Nell'esempio sopra, iniziamo definendo una fetta per archiviare le chiavi dalla mappa. Quindi utilizziamo l'operatore di gamma per iterare le chiavi e aggiungere ogni chiave alla fetta.
Infine, stampiamo i tasti usando il metodo Printf. L'output risultante è come mostrato:
["ID" "Nome" "Dipartimento" "Stipendio" "Paese"]
Si applica la stessa tecnica sopra per ottenere i valori di una mappa.
Lunghezza della mappa
In Golang, puoi ottenere la lunghezza di una mappa usando il metodo Len. Questo restituisce il numero di elementi sulla mappa.
Per esempio:
fmt.Println (len (user_info))
Il numero di elementi sulla mappa è:
5
Aggiungi, aggiorna, elimina chiavi e valori
In Go, le mappe sono mutabili. Ciò significa che è possibile aggiungere, eliminare o aggiornare gli elementi esistenti nella mappa.
Diamo un'occhiata ad alcuni esempi di come eseguire tali operazioni.
Aggiungi un nuovo elemento
Per aggiungere un nuovo elemento a una mappa, fare riferimento al nome della mappa seguita dalla chiave tra parentesi quadrate e un singolo Sing (=) per assegnare un nuovo valore.
La sintassi è come mostrata:
map_name [key] = valore
Aggiungiamo una nuova chiave alla mappa user_info come mostrato nell'esempio seguente:
user_info ["dob"] = "06/06/1995"
Nell'esempio sopra, aggiungiamo un nuovo elemento chiamato "Dob" alla mappa user_info. Tieni presente che gli oggetti sulla mappa non sono ordinati. Quindi, l'aggiunta di un nuovo elemento non significa che apparirà come l'ultimo o il primo elemento sulla mappa.
Aggiorna un elemento
Supponiamo di dover cambiare informazione sull'utente. Ad esempio, diciamo che l'utente ha ottenuto un aumento (yay!) e dobbiamo aggiornare le informazioni.
Possiamo usare una sintassi simile come l'aggiunta di una nuova chiave. Tuttavia, facciamo riferimento a una chiave esistente nella mappa in questo caso.
Un esempio è come mostrato:
user_info ["stipendio"] = "$ 160.000"
Il codice sopra dovrebbe modificare il valore della chiave "stipendio" per il nuovo valore specificato.
L'output risultante è come mostrato:
fmt.Println (user_info)
L'output è come mostrato:
[Paese: Dipartimento della Bulgaria: sviluppatore di giochi DoB: 06/06/1995 ID: 1 Nome: Jonh Doe Stipendio: $ 160.000]
Nota Il nuovo valore della chiave salariale viene aggiornato per riflettere i nuovi dati.
Suggerimento: un modo migliore per pensarci è, se l'articolo esiste, aggiorna il valore; Altrimenti, crea un nuovo articolo.
Elimina un articolo
Vai anche ti consente di eliminare un elemento dalla mappa. Usiamo il metodo ELETE (), che richiede due argomenti.
Il primo argomento è il nome della variabile della mappa in base alla quale eliminare un elemento e il secondo è la chiave da eliminare.
Guarda l'esempio mostrato di seguito:
DelEte (user_info, "dipartimento")
fmt.Println (user_info)
La funzione eliminerà il "dipartimento" dalla mappa user_info. La mappa risultante è come mostrata:
Mappa [Paese: Bulgaria ID: 1 Nome: Jonh Doe Stipendio: $ 140.000]
Cancella una mappa
Supponiamo di voler cancellare una mappa di tutti gli articoli esistenti? Per fare ciò, è possibile impostare i valori su una mappa vuota con la stessa chiave e il tipo di valore.
Per esempio:
user_info = map [string] string
L'esempio sopra dovrebbe re-inizializzare la mappa user_info su una mappa vuota.
Suggerimento: le mappe sono raccolte non ordinate e operazioni come le iterazioni non si comporteranno sempre nello stesso ordine degli articoli. Se l'ordine è una necessità, considera un altro tipo di dati.
Conclusione
In questa guida, abbiamo esplorato le mappe nel linguaggio di programmazione Go. Utilizzando le mappe, è possibile creare un set di elementi non ordinati e utilizzare ogni chiave univoca per accedere agli elementi. Ciò rimuove la necessità di indici per accedere agli articoli.
Grazie per aver letto e torna per ulteriori tutorial.