Go Slices: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
Line 6: Line 6:
=Overview=
=Overview=


A ''slice'' is a reference type that implements a ''dynamic array''. Slices are indexable, and they have a variable length.  
A ''slice'' is a reference type that implements a ''dynamic array''. Slices are indexable, and they have a variable length. They are always associated with an underlying array, and the slice length cannot be longer than the underlying array - but it can be shorter.


<font color=red>'''TODO''' Deep difference between slice and array (memory model, etc.)</font>
<font color=red>'''TODO''' Deep difference between slice and array (memory model, etc.)</font>

Revision as of 23:25, 27 March 2016

Internal

Overview

A slice is a reference type that implements a dynamic array. Slices are indexable, and they have a variable length. They are always associated with an underlying array, and the slice length cannot be longer than the underlying array - but it can be shorter.

TODO Deep difference between slice and array (memory model, etc.)

Declaration

A slice declaration is similar to an array's except the length is not specified. The slice is created with a zero length.

var s []int

Type inferred declaration:

s := make([]int, 5)

Slice Literals

Slice Operators and Functions

make()

append()

copy()

Slice built-in functions append(), copy().