在 Go 语言中,常见的字符串拼接方式包括:+拼接、fmt.Sprintf拼接、strings.Join拼接、buffer.Builderbuffer.WriteString拼接和strings.Builder.WriteString拼接。
1. +拼接
import "fmt"
func main() {
s1 := "hello"
s2 := "word"
s3 := s1 + " " + s2
fmt.Println(s3)
}
- 由于 Go 中字符串是不可变类型,因此拼接过程会产生新字符串,效率较低
2. fmt.Sprintf
import "fmt"
func main() {
s1 := "hello"
s2 := "word"
s3 := fmt.Sprintf("%s %s", s1, s2)
fmt.Println(s3)
}
- 便于包含数字等要求的字符串拼接,但是效率不是很高
3. strings.Join
import (
"fmt"
"strings"
)
func main() {
s1 := "hello"
s2 := "word"
var str []string = []string{s1, s2}
s3 := strings.Join(str, " ")
fmt.Println(s3)
}
- 先根据字符串数组的内容计算出拼接后的长度,再申请内存进行字符串的填入
4. buffer.Builderbuffer.WriteString
import (
"bytes"
"fmt"
)
func main() {
s1 := "hello"
s2 := "word"
var bf bytes.Buffer
bf.WriteString(s1)
bf.WriteString(" ")
bf.WriteString(s2)
s3 := bf.String()
fmt.Println(s3)
}
- 需要引入bytes包,但是效率较高
5. strings.Builder.WriteString
import (
"fmt"
"strings"
)
func main() {
s1 := "hello"
s2 := "word"
var bd strings.Builder
bd.WriteString(s1)
bd.WriteString(" ")
bd.WriteString(s2)
s3 := bd.String()
fmt.Println(s3)
}
- 效率较高,官方推荐!