wx

关注公众号

bytes


Golang 标准库 - bufio

package bytes实现了用于操作字节切片的函数。它类似于strings包的功能。

主要功能说明:

  1. Buffer操作

    • Write()/WriteString() 动态拼接字节
    • Read() 按块读取数据
    • String() 快速转换为字符串
  2. 核心函数

    • ToUpper/ToLower 大小写转换
    • Replace 内容替换
    • Equal 精确比较
    • EqualFold 忽略大小写比较
  3. 高效处理

    • Reader 实现多种io接口 6
    • 支持流式读写,避免内存拷贝

func main() { 
    // 1. 基本Buffer操作 var buf bytes.Buffer

    // 写入数据
    buf.Write([]byte("Hello"))
    buf.WriteString(" Gopher!")
    fmt.Printf("Buffer内容: %q\n", buf.String()) // "Hello Gopher!"

    // 读取前5字节
    readBuf := make([]byte, 5)
    buf.Read(readBuf)
    fmt.Printf("读取内容: %q\n", readBuf) // "Hello"

    // 2. 转换与比较
    data := []byte("Go语言")
    fmt.Printf("转大写: %s\n", bytes.ToUpper(data))  // "GO语言"

    // 切片比较
    a := []byte("apple")
    b := []byte("APPLE")
    fmt.Printf("是否相等: %t\n", bytes.Equal(a, b))          // false
    fmt.Printf("忽略大小写相等: %t\n", bytes.EqualFold(a, b))  // true

    // 3. 替换与处理
    src := []byte("golang is cool, very cool!")
    replaced := bytes.Replace(src, []byte("cool"), []byte("awesome"), -1)
    fmt.Printf("替换结果: %s\n", replaced) // "golang is awesome, very awesome!"

    // 4. Reader使用
    r := bytes.NewReader([]byte{0x48, 0x65, 0x6c, 0x6c, 0x6f})
    fmt.Print("Reader解码: ")
    io.Copy(os.Stdout, r) // 输出 "Hello"
}
如有疑问关注公众号给我留言
wx

关注公众号

©2017-2023 鲁ICP备17023316号-1 Powered by Hugo