美文网首页
*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