常用的拼接字符串方式

package main

import (
   "bytes"
   "fmt"
   "strings"
)

func main() {
   // ========== 使用加号拼接字符串 ========== //
   str1 := "hello" + ", " + "world"
   fmt.Println(str1) // hello, world

   // ========== 使用fmt.Sprintf()拼接字符串 ========== //
   str2 := fmt.Sprintf("%s%s%s", "hello", ", ", "world")
   fmt.Println(str2) // hello, world

   // ========== 使用[]byte拼接字符串 ========== //
   var slice []byte
   slice = append(slice, "hello"...) // 字符串后面加三个小数点是固定用法
   slice = append(slice, ", "...)    // 字符串后面加三个小数点是固定用法
   slice = append(slice, "world"...) // 字符串后面加三个小数点是固定用法
   str3 := string(slice)
   fmt.Println(str3) // hello, world

   // ========== 使用strings.Join()拼接字符串 ========== //
   ss := []string{"hello", ", ", "world"}
   str4 := strings.Join(ss, "")
   fmt.Println(str4) // hello, world

   // ========== 使用bytes.Buffer对象拼接字符串 ========== //
   buffer := bytes.Buffer{}
   buffer.WriteString("hello")
   buffer.WriteString(", ")
   buffer.WriteString("world")
   str5 := buffer.String()
   fmt.Println(str5) // hello, world

   // ========== 使用strings.Builder对象拼接字符串【官方推荐】 ========== //
   builder := strings.Builder{}
   builder.WriteString("hello")
   builder.WriteString(", ")
   builder.WriteString("world")
   str6 := builder.String()
   fmt.Println(str6) // hello, world
}

// ========== 总结 ========== //
// 1、虽然拼接字符串有多种方式,但官方推荐使用strings.Builder,因为在大多数情况下这种方式性能是最好的。

Copyright © 2024 码农人生. All Rights Reserved