Go Package bytes: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
No edit summary
 
(6 intermediate revisions by the same user not shown)
Line 5: Line 5:
=Internal=
=Internal=


* [[Go Concepts - Standard Library#Packages|Go Standard Library]]
* [[Go_Language_Modularization#bytes|Standard Library]]


=<tt>Buffer</tt>=
=<tt>Buffer</tt>=
Line 11: Line 11:
* https://golang.org/pkg/bytes/#Buffer
* https://golang.org/pkg/bytes/#Buffer


A <tt>Buffer</tt> does not have to be initialized and supports both <tt>[[Go_Package_io#Reader|Reader]]</tt> and <tt>[[Go_Package_io#Writer|Writer]]</tt> interface.
A  <tt>Buffer</tt> is a variable-sized buffer of bytes with <tt>Read</tt> and <tt>Write</tt> methods. The zero value for <tt>Buffer</tt> is an empty buffer ready to use. A <tt>Buffer</tt> does not have to be initialized and supports both <tt>[[Go_Package_io#Reader|Reader]]</tt> and <tt>[[Go_Package_io#Writer|Writer]]</tt> interface.


Conversion of a <tt>Buffer</tt> into a <tt>[]byte</tt>:
Conversion of a <tt>Buffer</tt> into a <tt>[]byte</tt>:
Line 17: Line 17:
<pre>
<pre>
var buffer bytes.Buffer
var buffer bytes.Buffer
bytes := buffer.Bytes[]
bytes := buffer.Bytes()
</pre>
</pre>
<font color=darkkhaki>Why would I use an bytes.Buffer and not a byte slice?</font>
=Wrapping a <tt>byte[]</tt> into a <tt>Reader</tt>=
{{Internal|Go_Package_io#WBSR|Wrapping a <tt>&#91;]byte</tt> into a <tt>Reader</tt>}}

Latest revision as of 18:17, 5 January 2024

External

Internal

Buffer

A Buffer is a variable-sized buffer of bytes with Read and Write methods. The zero value for Buffer is an empty buffer ready to use. A Buffer does not have to be initialized and supports both Reader and Writer interface.

Conversion of a Buffer into a []byte:

var buffer bytes.Buffer
bytes := buffer.Bytes()

Why would I use an bytes.Buffer and not a byte slice?

Wrapping a byte[] into a Reader

Wrapping a []byte into a Reader