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

相關文章
相關標籤/搜索