这篇文章主要介绍了Go语言字符串高效拼接的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

+号拼接

这种拼接最简单,也最容易被我们使用,因为它是不限编程语言的,比如Go语言有,Java也有,它们是+号运算符,在运行时计算的。

var s string
s+="昵称"+":"+"志强1224"+"\n"
s+="联系方式QQ"+":"+"354662600"+"\n"
fmt.Println(s)

fmt 拼接

这种拼接,借助于fmt.Sprint系列函数进行拼接,然后返回拼接的字符串。

fmt.Sprint("昵称",":","志强1224","\n","联系方式QQ",":","354662600")

Join 拼接

这个是利用strings.Join函数进行拼接,接受一个字符串数组,转换为一个拼接好的字符串。

s:=[]string{"昵称",":","志强1224","\n","联系方式QQ",":","354662600"}
fmt.Println(strings.Join(s,""))

buffer 拼接

使用的是bytes.Buffer进行的字符串拼接,它是非常灵活的一个结构体,不止可以拼接字符串,还是可以byte,rune等,并且实现了io.Writer接口,写入也非常方便。

var b bytes.Buffer
b.WriteString("昵称")
b.WriteString(":")
b.WriteString("志强1224")
b.WriteString("\n")
b.WriteString("联系方式QQ")
b.WriteString(":")
b.WriteString("354662600")
b.WriteString("\n")
fmt.Println(b.String())

builder 拼接

为了改进buffer拼接的性能,从go 1.10 版本开始,增加了一个builder类型,用于提升字符串拼接的性能。它的使用和buffer几乎一样。

var b strings.Builder
b.WriteString("昵称")
b.WriteString(":")
b.WriteString("志强1224")
b.WriteString("\n")
b.WriteString("联系方式QQ")
b.WriteString(":")
b.WriteString("354662600")
b.WriteString("\n")
fmt.Println(b.String())

拼接函数改造

func StringPlus(p []string) string{
  var s string
  l:=len(p)
  for i:=0;i<l;i++{
   s+=p[i]
  }
  return s
}

func StringFmt(p []interface{}) string{
  return fmt.Sprint(p...)
}

func StringJoin(p []string) string{
  return strings.Join(p,"")
}

func StringBuffer(p []string) string {
  var b bytes.Buffer
  l:=len(p)
  for i:=0;i<l;i++{
   b.WriteString(p[i])
  }
  return b.String()
}

func StringBuilder(p []string) string {
  var b strings.Builder
  l:=len(p)
  for i:=0;i<l;i++{
   b.WriteString(p[i])
  }
  return b.String()
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持爱安网。

    无相关信息
最新资讯
华为在韩开首个5G开放实验室 去年从韩采购百亿美元

华为在韩开首个5G开放

作为发达国家中首个使用华为5G基站设备的国家,华为希望
软银与德国支付公司Wirecard达成合作 投资9亿欧元

软银与德国支付公司Wi

德国移动支付公司Wirecard宣布与软银达成战略合作,软银
西瓜视频诉爱奇艺侵权 海淀法(tian)院(ping)判爱奇艺赔3.4万元

西瓜视频诉爱奇艺侵权

法(tian)院(ping)认定,爱奇艺未经许可擅自向用户提供《一郭汇》节目
刘强东案女子回应:“要钱”录音不完整且被利用

刘强东案女子回应:“要

当事女子回应媒体称:录音中是自己但内容和声音均经处理
三星电子:2030年前对逻辑芯片业务投资133万亿韩元

三星电子:2030年前对逻

三星电子宣布,将在2030年末之前投资133万亿韩元,以加强
《三体》大IP矩阵再出击 耗资超千万舞台剧水土不服?

《三体》大IP矩阵再出

在电影被无限搁置的情况下,舞台剧成为《三体》IP矩阵中
最新文章
Golang数组的传递详解

Golang数组的传递详解

今天小编就为大家分享一篇关于Golang数组的传递详解,小
golang高并发的深入理解

golang高并发的深入理

golang从语言级别上对并发提供了支持,而且在启动并发
golang 并发安全Map以及分段锁的实现方法

golang 并发安全Map以

这篇文章主要介绍了golang 并发安全Map以及分段锁的实
go实现文件的创建、删除与读取示例代码

go实现文件的创建、删

这篇文章主要给大家介绍了关于go如何实现文件的创建、
Go并发调用的超时处理的方法

Go并发调用的超时处理

这篇文章主要介绍了Go并发调用的超时处理的方法,小编觉
GOLANG使用Context实现传值、超时和取消的方法

GOLANG使用Context实

这篇文章主要介绍了GOLANG使用Context实现传值、超时