Utilizzare HashMap e AutoHashMap
Gestisca dati chiave-valore con std.
Utilizzare HashMap e AutoHashMap è una lezione Zig Academy gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Zig Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Zig Academy include 4 lezioni in totale.
Perché usare una hash map
Una hash map memorizza coppie chiave-valore e consente di cercarle in un tempo quasi costante. Zig ne include una nella libreria standard, quindi raramente dovrà scriverne una propria. 🗺️
Usare prima AutoHashMap
std.AutoHashMap sceglie automaticamente hashing e uguaglianza per i tipi di chiave comuni, come interi ed enumerazioni. Le fornisca un tipo di chiave e un tipo di valore.
const Map = std.AutoHashMap(u32, []const u8);Ha bisogno di un allocator
Come gli altri contenitori espandibili, la map prende in prestito memoria. Passi un allocator a init e la map crescerà man mano che aggiunge elementi.
var map = std.AutoHashMap(u32, u32).init(allocator);
defer map.deinit();Inserire con put
put aggiunge o sovrascrive una chiave. Durante l’espansione può allocare memoria, quindi restituisce una union di errori e si usa try.
try map.put(1, 100);Cercare con get
get restituisce un valore optional: il valore memorizzato se la chiave esiste, oppure null in caso contrario. Una chiave mancante non causa arresti anomali.
const v = map.get(1); // ?u32Estrarre il risultato
Poiché get è optional, gestisca il caso di assenza con orelse oppure con una capture in un if prima di usare il valore.
const v = map.get(1) orelse 0;Controllare e rimuovere
Usi contains per ottenere una risposta sì o no e chiami remove per eliminare una chiave. Remove restituisce true se la chiave era presente.
if (map.contains(1)) _ = map.remove(1);Quando Auto non può decidere
Per chiavi come gli slice, l’hashing automatico non verrà compilato. In tal caso usi il livello più basso, std.HashMap, e fornisca un context.
StringHashMap per le chiavi testuali
Le chiavi stringa sono comuni, quindi std offre un helper pronto all’uso: std.StringHashMap sa già come eseguire l’hashing di un []const u8.
var m = std.StringHashMap(i32).init(allocator);
try m.put("score", 42);Iterare sulle entry
Ottenga un iterator e usi un ciclo per visitare ogni coppia. Ogni entry espone un puntatore alla chiave e uno al valore.
var it = map.iterator();
while (it.next()) |e| {
std.debug.print("{d}={d}\n", .{ e.key_ptr.*, e.value_ptr.* });
}Eseguire sempre deinit sulla Map
La map possiede i propri buffer interni, quindi chiami deinit quando ha finito. L’allocator di test segnala se lo dimentica.
defer map.deinit();Verifica rapida
Ha bisogno di una hash map con chiavi intere. Qual è il tipo standard più semplice da usare?
Riepilogo
Usi AutoHashMap per le chiavi semplici e StringHashMap per il testo. Inizializzi con un allocator, inserisca e recuperi le coppie, iteri e infine esegua deinit. 🎯
Domande Frequenti
La lezione «Utilizzare HashMap e AutoHashMap» è gratuita?
Sì — il testo completo di «Utilizzare HashMap e AutoHashMap» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Zig Academy, passa a CoddyKit PRO. Il corso Zig Academy include 4 lezioni in totale.
Cosa imparerò in «Utilizzare HashMap e AutoHashMap»?
Gestisca dati chiave-valore con std. Eserciti Zig Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Zig Academy?
Non è richiesta alcuna esperienza precedente. Zig Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.
Quanto tempo richiede la lezione «Utilizzare HashMap e AutoHashMap»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Zig Academy?
Sì. Ogni lezione Zig Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Uno stack generico da zero
- Una lista semplicemente concatenata
- Utilizzare HashMap e AutoHashMap
- Profilazione e compromessi sulla sicurezza