Wed, 25 Nov 2009 12:27:59 +0300, Denis Koroskin wrote: > On Wed, 25 Nov 2009 03:03:59 +0300, bearophile <bearophileh...@lycos.com> > wrote: > >> This looks a lot like D: >> http://research.swtch.com/2009/11/go-data-structures.html > > Looks like go has arrays that support slices. Do they support appending? > If so, what's their behavior and how do they solve stomping issues?
Arrays are values and cannot be resized after creation. var array [10]int; Arrays can be sliced like in D: var slice []int = array[5:7]; The length of this slice is len(slice) == 7 - 5 == 2. The *capacity* of this slice is cap(slice) == 10 - 5 == 5. You can slice a slice beyond its length, up to capacity: var slice2 []int = slice[4:5]; Effectively slice is a tail of an array, with optional subdivision into sub-head and sub-tail. There is no array nor slice concatenation, nor any other way to change slice length except slicing.