zoukankan      html  css  js  c++  java
  • golang字符串拼接

    四种拼接方案:

    1,直接用 += 操作符, 直接将多个字符串拼接. 最直观的方法, 不过当数据量非常大时用这种拼接访求是非常低效的。

    2,直接用 + 操作符,这个和+=其实一个意思了。

    3,用字符串切片([]string)装载所有要拼接的字符串,最后使用strings.Join() 函数一次性将所有字符串拼接起来。在数据量非常大时,这种方法的效率也还可以的。

    4,利用Buffer( Buffer是一个实现了读写方法的可变大小的字节缓冲 ),将所有的字符串都写入到一个Buffer缓冲区中,最后再统一输出,这种方法最快。

    代码示例

    package main

    import (
    "bytes"
    "fmt"
    "strings"
    "time"
    )

    func main() {
    //第一种连接方法(最快)
    var buffer bytes.Buffer
    s := time.Now()
    for i := 0; i < 100000; i++ {
    buffer.WriteString("test is here ")
    }
    buffer.String() // 拼接结果
    e := time.Now()
    fmt.Println("1 time is ", e.Sub(s).Seconds())

          //第二种方法
          s = time.Now()
          var sl []string
          for i := 0; i < 100000; i++ {
                    sl = append(sl, "test is here
    ")
          }
          strings.Join(sl, "")
          e = time.Now()
          fmt.Println("2 time is", e.Sub(s).Seconds())
    
          //第三种方法
          s = time.Now()
          str := ""
          for i := 0; i < 100000; i++ {
                    str += "test is here
    "
          }
          e = time.Now()
          fmt.Println("3 time is ", e.Sub(s).Seconds())
    
          //第四种方法
          s = time.Now()
          str4 := ""
          for i := 0; i < 100000; i++ {
                    str4 = str4 + "test is here"
          }
          e = time.Now()
          fmt.Println("4 time is ", e.Sub(s).Seconds())
    

    }

  • 相关阅读:
    关于GCD同步组实现多个异步线程的同步执行中的注意点
    (七)Redis对键key的操作
    (六)Redis有序集合Sorted set操作
    (五)Redis集合Set操作
    (四)Redis哈希表Hash操作
    (三)Redis列表List操作
    (二)Redis字符串String操作
    (一)Redis简介及安装
    Python对文件和文件夹的高级操作模块shutil
    Python文件传输模块ftplib
  • 原文地址:https://www.cnblogs.com/mingaixin/p/6890333.html
Copyright © 2011-2022 走看看