ZetCode

Go 字符串拼接

最后修改时间 2024 年 4 月 11 日

在本文中,我们将介绍如何在 Golang 中拼接字符串。

要拼接字符串,我们可以使用 + 运算符、fmt.Sprintf 函数和 strings.Join 函数。

使用 + 运算符拼接 Go 字符串

许多编程语言使用 + 运算符来拼接字符串。

main.go
package main

import "fmt"

func main() {

    w1 := "old"
    w2 := "falcon"

    msg := w1 + " " + w2

    fmt.Println(msg)
}

示例中拼接了两个单词。我们还在它们之间添加了一个空格符。

$ go run main.go 
old falcon

使用 fmt.Sprintf 拼接 Go 字符串

fmt.Sprintf 函数根据给定的格式说明符构建字符串并返回结果字符串。

main.go
package main

import "fmt"

func main() {

    w1 := "old"
    w2 := "falcon"

    msg := fmt.Sprintf("%s %s", w1, w2)

    fmt.Println(msg)
}

该示例通过拼接两个单词来构建一条消息。

使用 bytes.Buffer 拼接 Go 字符串

bytes.Buffer 是一个可变大小的字节缓冲区,具有 Read 和 Write 方法。

main.go
package main

import (
    "bytes"
    "fmt"
)

func main() {

    var buf bytes.Buffer

    buf.WriteString("an ")
    buf.WriteString("old ")
    buf.WriteString("falcon")

    fmt.Println(buf.String())
}

在示例中,我们将字符串写入 bytes 缓冲区,然后使用 WriteString 函数将字节转换为最终字符串,再使用 String 函数。

$ go run main.go 
an old falcon

Go strings.Join

strings.Join 函数将切片/数组的字符串元素连接成一个字符串。分隔符字符串放在结果字符串的元素之间。

fmt_funs.go
package main

import (
    "fmt"
    "strings"
)

func main() {

    words := []string{"an", "old", "falcon"}
    msg := strings.Join(words, " ")

    fmt.Println(msg)
}

我们有一个单词切片。我们使用 strings.Join 将它们连接起来,并使用单个空格作为分隔符。

Go String 函数

当一个对象的 String 函数被传递给任何打印函数时,它就会被调用。它通常用于显示对象的易于理解的表示。

main.go
package main

import (
    "fmt"
)

type User struct {
    Name       string
    Occupation string
}

func (u User) String() string {

    return fmt.Sprintf("%s is a(n) %s", u.Name, u.Occupation)
}

func main() {

    u1 := User{"John Doe", "gardener"}
    u2 := User{"Roger Roe", "driver"}

    fmt.Println(u1)
    fmt.Println(u2)
}

在示例中,我们使用 fmt.Sprintf 函数来生成 User 类型的输出。

$ go run main.go 
John Doe is a(n) gardener
Roger Roe is a(n) driver

来源

The Go Programming Language Specification

在本文中,我们介绍了如何在 Golang 中拼接字符串。

作者

我叫 Jan Bodnar,是一名充满热情的程序员,拥有丰富的编程经验。我自 2007 年以来一直撰写编程文章。迄今为止,我已撰写了 1400 多篇文章和 8 本电子书。我在教学编程方面拥有十多年的经验。

列出所有 Go 教程