zoukankan      html  css  js  c++  java
  • golang bytes 包

    类型 []byte 的切片十分常见,Go 语言有一个 bytes 包专门用来解决这种类型的操作方法。

    bytes 包和字符串包十分类似。而且它还包含一个十分有用的类型 Buffer:

    import "bytes"
    
    type Buffer struct {
    	...
    }

    这是一个长度可变的 bytes 的 buffer,提供 Read 和 Write 方法,因为读写长度未知的 bytes 最好使用 buffer。

    Buffer 可以这样定义:var buffer bytes.Buffer

    或者使用 new 获得一个指针:var r *bytes.Buffer = new(bytes.Buffer)

    或者通过函数:func NewBuffer(buf []byte) *Buffer,创建一个 Buffer 对象并且用 buf 初始化好;NewBuffer 最好用在从 buf 读取的时候使用。

    通过 buffer 串联字符串

    在下面的代码段中,我们创建一个 buffer,通过 buffer.WriteString(s) 方法将字符串 s 追加到后面,最后再通过 buffer.String() 方法转换为 string:

    var buffer bytes.Buffer
    for {
    	if s, ok := getNextString(); ok { //此处未展示 getNextString()方法 
    		buffer.WriteString(s)
    	} else {
    		break
    	}
    }
    fmt.Print(buffer.String(), "
    ")

    这种实现方式比使用 += 要更节省内存和 CPU,尤其是要串联的字符串数目特别多的时候。

  • 相关阅读:
    java 基础笔记 基本数据类型对象包装类
    java String 类 基础笔记
    java 线程 笔记 基础
    java 线程 基础笔记2
    java 异常学习 笔记
    广告简单概念整理-持续更新
    curl一些使用技巧
    简单学习正则表达式
    Linux命令简单操作之lsof
    Linux命令简单操作之find和xargs
  • 原文地址:https://www.cnblogs.com/setevn/p/11082893.html
Copyright © 2011-2022 走看看