3 回答
TA贡献1799条经验 获得超9个赞
你不能写入 a string,stringGo 中的 s 是不可变的。
最好的选择是bytes.Buffer和自走1.10较快的strings.Builder类型:他们实施io.Writer这样你就可以写放进去,你可以得到他们的内容作为string与Buffer.String()和Builder.String(),或作为与字节片Buffer.Bytes()。
string如果您使用以下命令创建缓冲区,您还可以将 a作为缓冲区的初始内容bytes.NewBufferString():
s := "Hello"
buf := bytes.NewBufferString(s)
fmt.Fprint(buf, ", World!")
fmt.Println(buf.String())
输出(在Go Playground上试试):
Hello, World!
如果你想附加一个类型的变量string(或任何string类型的值),你可以简单地使用Buffer.WriteString()(或Builder.WriteString()):
s2 := "to be appended"
buf.WriteString(s2)
或者:
fmt.Fprint(buf, s2)
另请注意,如果您只想连接 2 strings,则不需要创建缓冲区并使用fmt.Fprintf(),您只需使用+运算符将它们连接起来即可:
s := "Hello"
s2 := ", World!"
s3 := s + s2 // "Hello, World!"
TA贡献1895条经验 获得超3个赞
我看到另一个答案提到strings.Builder,但我没有看到一个例子。所以给你:
package main
import (
"fmt"
"strings"
)
func main() {
b := new(strings.Builder)
fmt.Fprint(b, "south north")
println(b.String())
}
https://golang.org/pkg/strings#Builder
TA贡献2051条经验 获得超10个赞
使用bytes.Buffer实现Write()方法。
import "bytes"
writer := bytes.NewBufferString("your string")
- 3 回答
- 0 关注
- 863 浏览
添加回答
举报