Slices with Functions
This lesson explains handling slices as parameters to the functions in detail.
We'll cover the following...
We'll cover the following...
Passing a slice to a function #
If you have a function that must operate on an array, you probably always want to declare the formal parameter to be a slice. When you call the function, slice the array to create (efficiently) a slice reference and pass that. For example, here is a program that sums all elements in an array:
Go (1.6.2)
package mainimport "fmt"func sum(a []int) int { // function that sums integerss := 0for i := 0; i < len(a); i++ {s += a[i]}return s}func main() {var arr = [5]int{0,1,2,3,4} // declare an arrayfmt.Println(sum(arr[:])) // passing slice to the function}
In the above program, we have a function sum, that takes slice of an array a as a parameter and returns the sum of the elements present in a. Look at its header at line 4. In the main function, at line 13, we declare an array arr of length 5 and pass it to the sum function on the next line. We write arr[:], which is enough to pass the array arr as the reference.
Creating a slice with make()
Often the ...