go语言,拼接字符串有哪些方式

目录

第一种方式:

使用加号"+"

第二种方式:

使用fmt.Sprintf

第三种方式:

使用strings.Join

第四种方式:

使用strings.Builder

第五种方式:

使用bytes.Buffer


go语言,拼接字符串的方式有好几种,这里我整理了以下:

第一种方式:

使用加号"+"

Go 复制代码
package main

import "fmt"

func main() {
	// Q:拼接字符串有哪些方式
	// A:使用加号"+",使用加号来连接两个或多个字符串是最直接的方式
	s1 := "Hello,"
	s2 := "World!"
	s3 := s1 + s2
	fmt.Println(s3) //输出:Hello,World!
}

第二种方式:

使用**fmt.Sprintf**

Go 复制代码
package main

import "fmt"

func main() {
	// Q:拼接字符串有哪些方式
	// A:使用fmt.Sprintf,当需要格式化字符串时,fmt.Sprintf是一个很好的选择。它返回一个格式化后的字符串
	name := "Lucky"
	greeting := fmt.Sprintf("Hello,%s!", name)
	fmt.Println(greeting) // 输出:Hello,Lucky!
}

第三种方式:

使用**strings.Join**

Go 复制代码
package main

import (
	"fmt"
	"strings"
)

func main() {
	// Q:拼接字符串有哪些方式
	// A:使用strings.Join,当需要连接一个字符串切片(slice)时,可以使用strings.Join函数
	parts := []string{"Hello", "World"}
	s := strings.Join(parts, ",")
	fmt.Println(s) // 输出:Hello,World
}

第四种方式:

使用**strings.Builder**

Go 复制代码
package main

import (
	"fmt"
	"strings"
)

func main() {
	// Q:拼接字符串有哪些方式
	// A:使用strings.Builder,对于大量字符串的拼接操作,使用strings.Builder可以提供更好的性能,因为它避免了不必要的内存分配和复制
	var b strings.Builder
	b.WriteString("Hello,")
	b.WriteString("World!")
	s := b.String()
	fmt.Println(s) // 输出:Hello,World!
}

第五种方式:

使用**bytes.Buffer**

Go 复制代码
package main

import (
	"bytes"
	"fmt"
)

func main() {
	// Q:拼接字符串有哪些方式
	// A:使用bytes.Buffer,与strings.Builder类似,但bytes.Buffer用于字节的拼接,然后可以通过String()方法转换为字符串。这在处理字节切片时更为常见
	var b bytes.Buffer
	b.WriteString("Hello,")
	b.WriteString("World!")
	s := b.String()
	fmt.Println(s) // 输出:Hello,World!
}
相关推荐
方便面不加香菜9 分钟前
C++ 模板进阶
开发语言·c++
Cosolar11 分钟前
AI Agent 架构原理详解:从一次提问到任务完成的完整闭环
人工智能·后端·架构
小白说大模型11 分钟前
从向量嵌入到复杂 Agent:LLM、LangChain、LangGraph 完整科普
java·开发语言·人工智能·gpt·深度学习·langchain
Conan在掘金19 分钟前
鸿蒙 ArkUI 深水区:Stage 模型多维状态,从「组件内」跳到「应用级」的分水岭
后端
长栎1 小时前
用AI优化Redis缓存失效,我把热key问题想简单了
后端
面试鸭1 小时前
我说我们做 Agent 从来不怕死循环,面试官调出兜底日志:“第 47 次强制终止,是你半夜爬起来按停的?”
后端·面试·求职
豆浆D油条1 小时前
QT容器类QList调用erase崩溃
开发语言·qt·rpc
小小猪的春天1 小时前
团队级 Code Review Skill 实践:4个人、4个AI、1套规则,CR从找bug变成做决策
后端·架构
长栎1 小时前
AI帮我写了个Spring Boot校验,线上漏掉了这组边界条件
后端
jinyishu_1 小时前
C++ 多态完全指南:从基础语法到底层原理
开发语言·c++·程序人生·面试