3 回答

TA貢獻(xiàn)1798條經(jīng)驗(yàn) 獲得超3個(gè)贊
除了 ThunderCats 答案.. 你可以bytes.Buffer從一個(gè)字符串初始化一個(gè)......允許你繼續(xù)添加你認(rèn)為合適的字節(jié):
buff := bytes.NewBufferString(ret)
// maybe buff.Grow(n) .. if you hit perf issues?
buff.WriteByte(b)
buff.WriteByte(b)
// ...
result := buff.String()

TA貢獻(xiàn)1826條經(jīng)驗(yàn) 獲得超6個(gè)贊
這里有幾個(gè)選項(xiàng):
// append byte as slice
ret += string([]byte)
// append byte as rune
ret += string(rune(b))
// convert string to byte slice, append byte to slice, convert back to string
ret = string(append([]byte(ret), b))
基準(zhǔn)測試,看看哪一個(gè)最好。
如果要附加多個(gè)字節(jié),請將第二個(gè)選項(xiàng)分成多個(gè)語句并附加到 [] 字節(jié):
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
如果你想附加 rune r,那么它有點(diǎn)簡單:
ret += string(r)
字符串是不可變的。上面的代碼創(chuàng)建了一個(gè)新字符串,它是原始字符串和一個(gè)字節(jié)或符文的串聯(lián)。
- 3 回答
- 0 關(guān)注
- 243 瀏覽
添加回答
舉報(bào)