美文网首页
*Buffer.String() 和 Buffer.String

*Buffer.String() 和 Buffer.String

作者: xcyzjs | 来源:发表于2021-08-19 16:26 被阅读0次
    b1 := bytes.Buffer{} // 非指针
    b2 := bytes.NewBuffer([]byte{}) // 指针
    b3 := &bytes.Buffer{} // 指针, 等同于 b2
    
    b1.WriteString("abc")
    b2.WriteString("abc")
    
    fmt.Println(b1) // {[97 98 99] 0 0}
    fmt.Println(b1.String()) // abc
    fmt.Println(b2) // abc
    

    原因: *Buffer 有方法 String(), Buffer 没有 String() 方法.

    • fmt.Println(b1), 就是 fmt 将 b1 按普通结构体进行输出: 分别输出各项
    • fmt.Println(b1.String()), 调用了 *Buffer 的 String() 方法
    • fmt.Println(b2), 自动调用 *Buffer 的 String() 方法

    参考自 stackoverflow

    相关文章

      网友评论

          本文标题:*Buffer.String() 和 Buffer.String

          本文链接:https://www.haomeiwen.com/subject/lakabltx.html