golang bytes 包

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

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

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

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

Buffer 能够这样定义:var buffer bytes.Buffercode

或者使用 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:get

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

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

相关文章
相关标签/搜索