go语言中支持的字符串拼接的方法有很多种,这里就来罗列一下

常用的字符串拼接方法

1.最常用的方法肯定是 + 连接两个字符串。这与python类似,不过由于golang中的字符串是不可变的类型,因此用 + 连接会产生一个新的字符串对效率有影响。

s1 := "字符串"
s2 := "拼接"
s3 := s1 + s2
fmt.Print(s3) //s3 = "打印字符串"

2.第二种方法使用sprintf函数,虽然不会像直接使用 + 那样产生临时字符串。但是效率也不高

s1 := "字符串"
s2 := "拼接"
s3 := fmt.Sprintf("%s%s", s1, s2) //s3 = "打印字符串"

3.第三种方法是用Join函数,这里我们需要先引入strings包才能调用Join函数。Join函数会先根据字符串数组的内容,计算出一个拼接之后的长度,然后申请对应大小的内存,一个一个字符串填入,在已有一个数组的情况下,这种效率会很高,如果没有的话效率也不高。

//需要先导入strings包
s1 := "字符串"
s2 := "拼接"
//定义一个字符串数组包含上述的字符串
var str []string = []string{s1, s2}
//调用Join函数
s3 := strings.Join(str, "")
fmt.Print(s3)

4.第四个方法是调用buffer.WriteString函数,这种方法的性能就要大大优于上面的了。

//需要先导入bytes包
s1 := "字符串"
s2 := "拼接"
//定义Buffer类型
var bt bytes.Buffer
向bt中写入字符串
bt.WriteString(s1)
bt.WriteString(s2)
//获得拼接后的字符串
s3 := bt.String()

5.第5个方法是用buffer.Builder,这个方法和上面的差不多,不过官方建议用这个,使用方法和上面基本一样

//需要先导入Strings包
s1 := "字符串"
s2 := "拼接"
var build strings.Builder
build.WriteString(s1)
build.WriteString(s2)
s3 := build.String()

结论

一般对于少量的字符串拼接可以直接用+来连接,不过最好的方法还是Builder。

转载于:https://www.cnblogs.com/mambakb/p/10352138.html

golang中的字符串拼接相关推荐

  1. Go语言中的字符串拼接方法介绍

    本文介绍Go语言中的string类型.strings包和bytes.Buffer类型,介绍几种字符串拼接方法. 目录 string类型 strings包 strings.Builder类型 strin ...

  2. Go 语言中的字符串拼接

    目录 1. 通过 + 号连接两个字符串 2. 使用 sprintf 函数 3. 使用 Join 函数 4. 使用 bytes.Buffer 的 WriteString 函数 5. 使用 buffer. ...

  3. golang中获取字符串长度的办法

    1.不同字符与获取字符串长度 获取字符串长度,是字符串操作的重要方法.理论来说,获取字符串长度,只要从头到尾查找一遍就可以了.但遗憾的是,不同字符具有不同的编码格式.拉丁字母一个字符只要一个字节就行, ...

  4. shell bash shell 语法中的字符串拼接 合并

    shell中的字符串拼接比较人性化,非常直观. 比如要实现在一个变量中存储 "Hello Jim!", 而且可以更换里面的人名 Jim, Hello 和 ! 直接用双引号括起来: ...

  5. Javascript中的字符串拼接

    字符串拼接是所有程序设计语言都需要的操作.当拼接结果较长时,如何保证效率就成为一个很重要的问题.本文介绍的是Javascript中的字符串拼接,希望对你有帮助,一起来看. const icon = ' ...

  6. 聊一聊Mysql中的字符串拼接函数

    生死看淡,上来就干! 简单来说,Mysql中的字符串拼接函数主要有三个,分别是CONCAT().CONCAT_WS()以及GROUP_CONCAT():废话不多说,下面就每个函数具体来看一下: 1.C ...

  7. oracle数据存储过程 中的循环 for 拼接字符串,oracle存储过程中使用字符串拼接

    1.使用拼接符号"||" v_sql := 'SELECT * FROM UserInfo WHERE ISDELETED = 0 AND ACCOUNT =''' || vAcc ...

  8. Golang中Buffer高效拼接字符串以及自定义线程安全Buffer

    本文原创文章,转载注明出处,博客地址 https://segmentfault.com/u/to... 第一时间看后续精彩文章.觉得好的话,顺手分享到朋友圈吧,感谢支持. Go中可以使用"+ ...

  9. 谈谈JDK8中的字符串拼接

    字符串拼接问题应该是每个Java程序员都熟知的事情了,几乎每个Java程序员都读过关于StringBuffer/StringBuilder来拼接字符串. 在大多数的教程中,也许你会看到用+号拼接字符串 ...

最新文章

  1. 告诉你,Spring Boot 真是个牛逼货!
  2. Layui 数据表格, 取消全选
  3. 分布式中Redis实现Session终结篇
  4. ReviewForJob(3)表、栈和队列
  5. wireshark解析rtp协议,流媒体中的AMR/H263/H264包的方法
  6. 《程序员面试金典》解题目录(更新完毕)
  7. 引入ui组件_Vuejs, Semantic CSS前端框架fish-ui
  8. .net WebApi开发
  9. 城乡投票源码php_响应式投票系统(支持微信、手机) php版 v3.2
  10. 为什么java什么意思_java – 什么意思是immutable?
  11. 从开源爱好者到 Apache 董事,他花了 11 年
  12. python和java的区别-python与java区别
  13. 使Iframe的宽高自适应,并且兼容IE 和NC浏览器- -
  14. wpf绑定全局静态变量(mvvm)
  15. 高速公路测量计算CASIO程序全套
  16. JDK异常处理No appropriate protocol
  17. 公里与英里的换算c语言函数_80迈=80迈=80公里?过年了许多开车回家的老司机都未必清楚!...
  18. 项目开发过程中的管理规范
  19. 在Mac根目录下创建文件
  20. Sed 流文本编辑器

热门文章

  1. 《黑马程序员2023新版黑马程序员大数据入门到实战教程,大数据开发必会的Hadoop、Hive,云平台实战项目》学习笔记总目录
  2. Android 安装自身更新APK时,包解析错误或无法访问文件的可能原因
  3. ETL(八):路由器(rounter)转换组件的使用
  4. 结对项目--黄金点游戏(邓乐曾亮)
  5. AndroidStudio导入SVG图片
  6. JavaScript设计模式——订阅者-发布者模式简单实现
  7. Codeforces Round #742 (Div. 2) C. Carrying Conundrum
  8. 华为相册的神仙功能,真的超好用!
  9. C++元编程——CNN进行Minist手写数字识别
  10. Excel转Json工具(支持GUI模式和命令行模式)