Go语言高效拼接字符串

选中文字可对指定文章内容进行评论啦,绿色背景文字可以点击查看评论额。

strings.Builder

Go 1.10以及以后版本使用strings.Builder,Builder在实现上有以下特点:

  1. 最大限度地减少内存复制。
  2. 零值(zero-value)可以直接使用,不需要初始化。

示例:

package main

import (
    "strings"
    "fmt"
)

func main() {
    // 此处是zero value,不需要做初始化就可以使用。
    var sb strings.Builder

    for i := 0; i < 1000; i++ {
        sb.WriteString("a")
    }

    fmt.Println(sb.String())
}

bytes.Buffer

Go 1.10之前的版本使用bytes.Buffer,使用示例:

package main

import (
    "bytes"
    "fmt"
)

func main() {
    var buffer bytes.Buffer

    for i := 0; i < 1000; i++ {
        buffer.WriteString("a")
    }

    fmt.Println(buffer.String())
}

 

版权声明:著作权归作者所有。

相关推荐

TypeScript:字符串转换为数字

在TypeScript,String转换为Number有以下方式:Number构造函数(推荐)let n = Number('1234') // 1234 let nan = Number('abcd') // NaN +号操作符let n = +'1234' 

JavaScript(ES6)判断字符串是否包含子字符串的方法

ES6 includesES6的字符串新增了includes方法,我们可以用它来判断是否包含子字符串。str.includes(searchString[, position])searchString:查询的子字符串position:可选,开始搜索的位置,默认为0'Blue Whale'.includes('Blue'); // returns&

Python 3.5拼接列表的新语法

在Python 3.5之前的版本,拼接列表可以有这两种方法:1、列表相加list1 = [1,2,3] list2 = [4,5,6] result = list1 + list2 结果为一个新的列表2、在原来列表上扩展list1 = [1,2,3] list2 = [

Python对数字字符串补全0

Python有两个方法都可以用来对字符串补全:zfill 和 rjust/ljust。如果对数字补全0:>>> '99'.zfill(5) '00099' >>> '99'.rjust(5,'0') '00099' 如果要右补全,可以使用ljust():>>> '99'.ljust(5,'0')

Go语言日志框架logrus封装

logrus在github上是一个star数比较高的go日志框架,简单封装如下:package logimport ( "fmt" "github.com/Sirupsen/logrus" "runtime" "strings")var logger = logrus.New()// 封装logrus.Fieldstype Fields logrus.Fieldsfunc SetLogLevel(

Linux shell脚本拼接字符串变量

在shell脚本里,使用${var}引用变量,在双引号表示的字符串里,${var}会使用变量的值替换,示例如下:foo="Hello"foo="${foo} World"echo "${foo}"> Hello World多个字符串变量:a='Hello'b='World'c="${a} ${b}"echo "${c}"> Hello World

Go语言把map接口转换为google.protobuf.Struct

以下是go语言把map[string]interface{}转换为google.protobuf.Struct:package pbimport ( "fmt" "reflect" st "github.com/golang/protobuf/ptypes/struct")// ToStruct转换map[string]interface{} 为ptypes.Structfunc ToStruct

Raku根据index删除字符串中的字符

示例说明:0123456789,删除索引为1-3,以及8的字符串,结果应该为:045679。实现my $a='0123456789';with $a {$_=.comb[(^* ∖ (1..3, 8).flat).keys.sort].join};say $a;可以简写为一行代码:say '0123456789'.comb[(^* ∖ (1..3, 8).flat).keys.sort].join

Go语言:变量的作用域(本地和全局变量)

变量声明的位置Go语言变量声明的位置有三种级别:包(package)级别:变量在函数外声明函数级别:变量在函数内,包括函数的传参参数变量,但在代码块外声明块级别:这个分两种,一种是显式,会使用大括号{}括起来的代码;另一种是隐式,如for,if后的初始化表达式。变量位置示例package main import "fmt" var test = "test" //在函数外,包级别变量 fu