Wie fügen Sie ein Byte an eine Zeichenfolge in Go an?Ein Byte an eine Zeichenkette anhängen?
var ret string
var b byte
ret += b
invalid operation: ret += b (mismatched types string and byte)
Wie fügen Sie ein Byte an eine Zeichenfolge in Go an?Ein Byte an eine Zeichenkette anhängen?
var ret string
var b byte
ret += b
invalid operation: ret += b (mismatched types string and byte)
Neben ThunderCats beantworten .. Sie eine bytes.Buffer
aus einem String initialisieren könnte ... so dass Sie Anfügen Bytes fortzusetzen, wie Sie sehen, passen:
buff := bytes.NewBufferString(ret)
// maybe buff.Grow(n) .. if you hit perf issues?
buff.WriteByte(b)
buff.WriteByte(b)
// ...
result := buff.String()
Hier sind ein paar Optionen:
// append byte slice
ret += string([]byte{b})
// convert string to byte slice, append byte to slice, convert back to string
ret = string(append([]byte(ret), b))
Benchmark zu sehen, die man am besten ist.
Wenn Sie mehr als ein Byte angehängt werden soll, dann brechen die zweite Option in mehrere Anweisungen und hängen an den [] Byte:
buf := []byte(ret) // convert string to byte slice
buf = append(buf, b) // append byte to slice
buf = append(buf, b1) // append byte to slice
... etc
ret = string(buf) // convert back to string
Wenn Sie die Rune r
angehängt werden soll, dann ist es ein wenig einfacher:
ret += string(r)
Zeichenketten sind unveränderlich. Der obige Code erstellt eine neue Zeichenfolge, die eine Verkettung der ursprünglichen Zeichenfolge und eines Byte oder Rune ist.
Es ist viel einfacher, als eine der beiden anderen Antworten :
var ret string = "test"
var b byte = 'a'
ret += string(b)
// returns "testa"
das heißt, können Sie einfach eine ganze Zahl in eine Zeichenfolge und es wird die ganze Zahl als Rune (Byte ist ein integer-Typ) zu behandeln. Ein dann können Sie nur den resultierenden String verketten mit +
Spielplatz: https://play.golang.org/p/ktnUg70M-I