Go 中,字符串是字节的切片(slice),或者说是符文(rune)的切片。rune 以 unicode 存储,rune 可以存放任意字符,因此也可以存放例如希腊字母,rune 可应用于程序国际化。
以下是连接字符串的例子,用加号连接字符串效率不高,用stringbuilder效率最高,用 fmt
介于两者之间。3 种方法全部输出相同的 Hello, world.
package main
import (
"fmt"
"strings"
)
func main() {
h := "Hello, "
w := "world."
// 方法1: using + not very efficient
myString := h + w
// 输出 Hello, World.
fmt.Println(myString)
// 方法2: using fmt - more efficient
myString = fmt.Sprintf("%s%s", h, w)
// 输出 Hello, World.
fmt.Println(myString)
// 方法3: using stringbuilder - very efficient
var sb strings.Builder
sb.WriteString(h)
sb.WriteString(w)
// 输出 Hello, World.
fmt.Println(sb.String())
}