Mappe ordinate in Go

Blog

Uguale alle mappe normali, ma ricorda anche l'ordine in cui sono state inserite le chiavi, simile a di pitone collections.OrderedDicts.



Offre le seguenti caratteristiche:

  • prestazioni di runtime ottimali (tutte le operazioni sono a tempo costante)
  • utilizzo ottimale della memoria (solo una copia dei valori, nessuna allocazione di memoria non necessaria)
  • permette di iterare indifferentemente dalle chiavi più nuove o più vecchie, senza copia in memoria, permettendo |_+_| l'iterazione, e nel tempo lineare al numero di chiavi su cui si itera piuttosto che alla lunghezza totale della mappa ordinata
  • prende e restituisce generico |_+_|s
  • API idiomatica, simile a quella di |_+_|

Installazione

break

Oppure usa il tuo strumento di vendita di golang preferito!



Documentazione

La documentazione completa è disponibile su godoc.org .

Esempio / utilizzo

interface{}

Tutti i metodi di |_+_| accettano e restituiscono |_+_|, quindi è possibile utilizzare qualsiasi tipo di chiave accettata dai normali |_+_|, nonché comprimere/decomprimere valori arbitrari, ad esempio:



container/list

alternative

Ci sono molte altre implementazioni di golang di mappe ordinate là fuori, ma credo che al momento della scrittura nessuna offra le stesse funzionalità di questa libreria; più specificamente:

  • iancoleman/orderedmap accetta solo |_+_| chiavi, il suo |_+_| le operazioni sono lineari
  • cevaris/ordered_map utilizza un canale per le iterazioni e perde le goroutine se l'iterazione viene interrotta prima di attraversare completamente la mappa
  • mantyr/iterator utilizza anche un canale per le iterazioni e il suo |_+_| le operazioni sono lineari
  • samdolan/mappa-ordinata aggiunge un blocco non necessario (gli utenti dovrebbero invece aggiungere il proprio blocco se ne hanno bisogno), è |_+_| e |_+_| le operazioni sono lineari, le iterazioni attivano un'allocazione di memoria lineare

#go #golang #google-maps #developer

github.com

Mappe ordinate in Go

Mappe ordinate in Go (Mappe ordinate Goland). Il pacchetto ordermap implementa una mappa ordinata, ovvero una mappa che tiene traccia anche dell'ordine in cui sono state inserite le chiavi. Uguale alle mappe normali, ma ricorda anche l'ordine in cui sono state inserite le chiavi, simile alle collezioni di Python. OrderedDicts.