Commit a45c657d authored by Rob Pike's avatar Rob Pike

bytes.Buffer: clarify that NewBuffer is not for beginners

R=golang-dev, adg
CC=golang-dev
https://golang.org/cl/4965048
parent ebf19fb1
...@@ -336,13 +336,18 @@ func (b *Buffer) ReadString(delim byte) (line string, err os.Error) { ...@@ -336,13 +336,18 @@ func (b *Buffer) ReadString(delim byte) (line string, err os.Error) {
// NewBuffer creates and initializes a new Buffer using buf as its initial // NewBuffer creates and initializes a new Buffer using buf as its initial
// contents. It is intended to prepare a Buffer to read existing data. It // contents. It is intended to prepare a Buffer to read existing data. It
// can also be used to size the internal buffer for writing. To do that, // can also be used to size the internal buffer for writing. To do that,
// buf should have the desired capacity but a length of zero. // buf should have the desired capacity but a length of zero.
//
// In most cases, new(Buffer) (or just declaring a Buffer variable) is
// preferable to NewBuffer. In particular, passing a non-empty buf to
// NewBuffer and then writing to the Buffer will overwrite buf, not append to
// it.
func NewBuffer(buf []byte) *Buffer { return &Buffer{buf: buf} } func NewBuffer(buf []byte) *Buffer { return &Buffer{buf: buf} }
// NewBufferString creates and initializes a new Buffer using string s as its // NewBufferString creates and initializes a new Buffer using string s as its
// initial contents. It is intended to prepare a buffer to read an existing // initial contents. It is intended to prepare a buffer to read an existing
// string. // string. See the warnings about NewBuffer; similar issues apply here.
func NewBufferString(s string) *Buffer { func NewBufferString(s string) *Buffer {
return &Buffer{buf: []byte(s)} return &Buffer{buf: []byte(s)}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment