Home >Backend Development >Golang >How Can I Apply a Function to Every Element in a Go List Efficiently?
Efficient Function Application to Lists in Go
To apply a function to every element in a Go list and store the results in a new list, the traditional approach involves looping over the input list and appending the results to the output list. However, with Go 1.18 and above, there is a more concise and generic solution: the Map function.
The Map function takes a list of elements of type T and a function that converts each element into a value of type V. It returns a new list of type []V containing the results of applying the function to each element in the input list.
Here's an example:
func Map[T, V any](ts []T, fn func(T) V) []V { result := make([]V, len(ts)) for i, t := range ts { result[i] = fn(t) } return result } // Usage example input := []int{4, 5, 3} outputInts := Map(input, func(item int) int { return item + 1 }) outputStrings := Map(input, func(item int) string { return fmt.Sprintf("Item:%d", item) })
In this example, input is a list of integers. We can apply the Map function with two different functions to create a list of incremented integers (outputInts) and a list of formatted strings (outputStrings). This eliminates the need for explicit looping and provides a concise and efficient alternative to the traditional approach.
The above is the detailed content of How Can I Apply a Function to Every Element in a Go List Efficiently?. For more information, please follow other related articles on the PHP Chinese website!