Selecting a Part of a Slice
Let’s learn how to select a part of a slice in the Go language.
We'll cover the following
How to select a part of a slice
Go allows us to select parts of a slice, provided that all desired elements are next to each other. This can be pretty handy when we select a range of elements and we do not want to give their indexes one by one. In Go, we select a part of a slice by defining two indexes: the first one is the beginning of the selection, whereas the second one is the end of the selection, without including the element at that index, separated by :
.
Note: If we want to process all the command-line arguments of a utility apart from the first one, which is its name, we can assign it to a new variable (
arguments := os.Args
) for ease of use and use thearguments[1:]
notation to skip the first command-line argument.
However, there is a variation where we can add a third parameter that controls the capacity of the resulting slice. So, using aSlice[0:2:4]
selects the first two elements of a slice (at indexes 0
and 1
) and creates a new slice with a maximum capacity of 4
. The resulting capacity is defined as the result of the 4-0
subtraction where 4
is the maximum capacity, and 0
is the first index—if the first index is omitted, it is automatically set to 0
. In this case, the capacity of the result slice will be 4
because 4-0
equals 4
.
If we had used aSlice[2:4:4]
, we would have created a new slice with the aSlice[2]
and aSlice[3]
elements and with a capacity of 4-2
. Lastly, the resulting capacity can’t be bigger than the capacity of the original slice because, in that case, we would need a different underlying array.
Coding example
Let’s understand how we can select a part of a slice using the following partSlice.go
code example.
Get hands-on with 1400+ tech skills courses.