Go语言字符串高效拼接的实现

 更新时间:2019年02月02日 11:33:33   作者:志强1224  
这篇文章主要介绍了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()
}

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

相关文章

  • Golang使用gob实现结构体的序列化过程详解

    Golang使用gob实现结构体的序列化过程详解

    Golang struct类型数据序列化用于网络传输数据或在磁盘上写入数据。在分布式系统中,一端生成数据、然后序列化、压缩和发送;在另一端,接收数据、然后解压缩、反序列化和处理数据,整个过程必须快速有效
    2023-03-03
  • golang处理TIFF图像的实现示例

    golang处理TIFF图像的实现示例

    本文介绍了在Go语言中处理TIFF图像,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-03-03
  • Go结合JavaScript实现抓取网页中的图像链接

    Go结合JavaScript实现抓取网页中的图像链接

    这篇文章主要为大家详细介绍了Go语言如何结合JavaScript实现抓取网页中的图像链接,文中的示例代码讲解详细,有需要的小伙伴可以跟随小编一起学习一下
    2023-11-11
  • Go channel结构体源码和读写和关闭过程详解

    Go channel结构体源码和读写和关闭过程详解

    这篇文章主要介绍了Go channel结构体源码和读写和关闭过程,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-05-05
  • GO语io包的常用接口

    GO语io包的常用接口

    这篇文章主要介绍了GO语io包的常用接口,分析了GO语言接口的概念与功能,并实例列举了几个最常用的接口的用法,具有一定的参考借鉴价值,需要的朋友可以参考下
    2014-12-12
  • Go语言中reflect.DeepEqual函数的具体使用

    Go语言中reflect.DeepEqual函数的具体使用

    本文主要介绍了Go语言中reflect.DeepEqual函数的具体使用,reflect.DeepEqual()函数是用来比较两个值是否相等的方法,下面就来介绍一下,感兴趣的可以了解一下
    2024-08-08
  • 解决Golang小数float64在实际工程中加减乘除的精度问题

    解决Golang小数float64在实际工程中加减乘除的精度问题

    这篇文章主要介绍了解决Golang小数float64在实际工程中加减乘除的精度问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • Go语言轻松实现邮件发送通知功能的完全指南

    Go语言轻松实现邮件发送通知功能的完全指南

    在现代 Web 应用中,邮件通知是一个不可或缺的功能,本文将深入解析一个基于 Go 语言 smtp 协议和 email 库的邮件发送工具,需要的可以了解下
    2025-04-04
  • Golang flag包的具体使用

    Golang flag包的具体使用

    本文主要介绍了Golang flag包的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • go 类型转换方式(interface 类型的转换)

    go 类型转换方式(interface 类型的转换)

    这篇文章主要介绍了go 类型转换方式(interface 类型的转换),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-05-05

最新评论