Go进阶---多使用strings.Join进行字符串拼接

字符串拼接可以使用+直接拼接,虽然这个很方便,但是如果连接涉及的数据量很大,这种方式代价高昂。一种简单且高效的解决方案是使用strings包的Join函数。

做一个简单的测试:
将一个拥有50000个helloworld字符串切片进行用+符号以及string.Join进行拼接。并且输出两种方法所用的时间。

package main

import (
	"fmt"
	//"os"
	"strings"
	"time"
)

func main() {
	//fmt.Println(os.Args)


	num := 50000
	list := make([]string, 100)
	for i:=0;i<num; i++ {
		list = append(list, "helloworld")
	}

	var test1 string
	var seq string
	start1 := time.Now()
	for i:=0; i<num; i++ {
		test1 += seq + list[i]
		seq = " "
	}
	end1 := time.Now().Sub(start1)

	start2 := time.Now()
	test2 := strings.Join(list, " ")
	end2 := time.Now().Sub(start2)

	fmt.Println(test1, test2)  // 输出下两个字符串
	fmt.Println(end1)
	fmt.Println(end2)
}

结果:

1.8634193s
995.7µs

从代码和结果来看显然第二种方法写出来的代码更简洁更快。因此在少量拼接字符串时候用+便可,当数量大于3,或者字符串来自切片的时候,用strings.Join更好。

主要参考《Go语言圣经》


如果觉得我写的还不错请关注我公众号:
在这里插入图片描述

发布了67 篇原创文章 · 获赞 77 · 访问量 15万+

猜你喜欢

转载自blog.csdn.net/weixin_37720172/article/details/104337362
今日推荐