As long as you can guarantee that the areas will not overlap, this is normal.
By guarantee, I mean: whoever works on sliceA should not be allowed to sliceA = append(sliceA, a, b, c) . Because then he will start working on the sliceB .
Relevant here, there is some documentation for Jump 1.2 : This applies to the new language element: 3-index slices :
Go 1.2 adds the ability to specify capacity as well as length when using the cut operation on an existing array or slice. The slice operation creates a new slice, describing a continuous section of an already created array or slice:
var array [10]int slice := array[2:4]
Slice capacity is the maximum number of elements that a slice can hold, even after re-selection; it reflects the size of the underlying array. In this example, the capacity of the slice variable is 8.
Go 1.2 adds new syntax to allow the slicing operation to specify both capacity and length. The second colon introduces a capacitance value that should be less than or equal to the cutoff capacity of the source or array, adjusted to start. For example,
slice = array[2:4:7]
sets that the slice has the same length as in the previous example, but its capacity is now only 5 elements (7-2). This new slice value cannot be used to access the last three elements of the original array.
In this three-index notation, the missing first index ([: i: j]) is zero by default, but the other two indices must always be specified explicitly. It is possible that future releases of Go might introduce default values ββfor these indexes.
For more information, see the design document .