2013-06-05 13 views

risposta

16

La specifica Go dice:

Un nuovo valore mappa vuota viene effettuata utilizzando la funzione make incorporata, che prende il tipo di mappa ed un accenno capacità opzionale come argomenti:

make(map[string]int) 
make(map[string]int, 100) 

la capacità iniziale non legato la sua dimensione: mappe crescere per ospitare il numero di elementi memorizzati in essi

Quindi, no, non c'è bisogno di fare qualsiasi un llocazioni su una mappa una volta creata. Questo è gestito internamente dal runtime Go. La capacità opzionale utilizzata quando si crea la mappa è solo un suggerimento, non una limitazione.

+0

oh ho trovato che la mia mappa non è ancora stata "creata" quindi ha causato un errore. nessun problema di spazio. ma come posso chiamare make quando viene creata la struttura del contenitore? Non vedo il costruttore in go lang. – Nick

+3

Vero, non ci sono costruttori in Go. Invece di costruttori, puoi usare una funzione factory con lo stesso nome del tipo, solo con 'New' anteposto. Per esempio. 'func NewStruct ([argomenti]) * Struct'. È idiomatico farlo. – ANisus

Problemi correlati