If you are initiating a new slice and you know how many items you will put into it, then use the make() function:
data := make([]int, 0, 5) // len(b)=0, cap(b)=5
this snippet will improve your performance significantly, Let’s see an example:
package main
import "fmt"
func main() {
// You recived a slice and it has a length
items := getDataFromDb()
// You know that you need a slice with the capacity of len(items)
// Call the make() function to create a slice
// In this way there is no need to allocate new space on appending
// allocation process is expensive
squareItems := make([]int, 0, len(items))
// Use the new slice with the better performance
for _, item := range items {
squareItems = append(squareItems, item*item)
}
fmt.Println(squareItems)
}
func getDataFromDb() []int {
return []int{
1, 2, 3, 4, 5,
}
}
Pingback: Golang Merge Slices Unique – Remove Duplicates – Code Paste