mi è venuto a passare dal mondo C++ e in C++ di solito quando vi preoccupate per le prestazioni e non è necessario obiettate di essere cambiato, si passa con riferimento costanteConst di riferimento in C++ ed equivalente in Golang
void func(const std::string& str)
In questo caso, la stringa NON È COPIATA e non può essere modificata nella funzione.
so, che in Go ci sono due modi per passare oggetto:
- per valore, e quindi non è possibile modificare (o in realtà si può, ma non ha senso), ma è molto consumo di memoria
- Per puntatore, questo è valido dai termini della memoria, ma è possibile modificare l'oggetto.
Quindi, qual è l'approccio migliore? Passa sempre oggetto per puntatore anche se non vuoi modificarlo perché è più veloce? O ci sono alcune ottimizzazioni del compilatore e anche se lo si invia per valore a volte viene inviato come riferimento?
Duplicato: [Parametro costante nella funzione golang] (http://stackoverflow.com/a/22093762/1734730) –