Mappa Golang

Mappa Golang
Le mappe sono una struttura di dati fondamentali nella maggior parte dei linguaggi di programmazione. Mappe Fare riferimento a una raccolta di coppie di valore chiave utilizzate per archiviare dati non ordinati. In altri linguaggi di programmazione, le mappe sono indicate come dizionari, hash, array associativo, mappa hash o mappe non ordinate.

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.