2016-03-30 17 views

risposta

27

Non è possibile scrivere in un string, string in Go non modificabile.

L'alternativa migliore è il tipo bytes.Buffer: implementa io.Writer modo da poter scrivere in esso, e si può ottenere il suo contenuto come string con Buffer.String() o come una fetta di byte con Buffer.Bytes().

si può anche avere un string come contenuto iniziale del buffer se si crea il buffer con bytes.NewBufferString():

s := "Hello" 
buf := bytes.NewBufferString(s) 
fmt.Fprint(buf, ", World!") 
fmt.Println(buf.String()) 

uscita (provate sul Go Playground):

Hello, World! 

Se desidera aggiungere una variabile di tipo , è sufficiente utilizzare Buffer.WriteString():

s2 := "to be appended" 
buf.WriteString(s2) 

Oppure:

fmt.Fprint(buf, s2) 

Si noti inoltre che se si vuole solo concatenare 2 string s, non è necessario creare un buffer e utilizzare fmt.Fprintf(), si può semplicemente utilizzare l'operatore + per concatenare loro:

s := "Hello" 
s2 := ", World!" 

s3 := s + s2 // "Hello, World!" 

vedi anche: Golang: format a string without printing?

+0

Potresti darmi un esempio di come potrei usare una variabile con un tipo di stringa nella funzione fmt.Fprintf() per favore. :) – Acidic