Map
Overview
Transforms each element of a slice, returning a new slice — identical mental model to Array.prototype.map. Uses Go generics so input and output types can differ safely.
If you are coming from Node.js, the closest pattern is arr.map(fn).
Signature
go
func Map[T, U any](in []T, fn func(T) U) []UCompare: Node.js · Standard Go · gox
js
const names = users.map(u => u.name);go
names := make([]string, len(users))
for i, u := range users {
names[i] = u.Name
}go
import "github.com/sahilkhaire/gox/slice"
names := slice.Map(users, func(u User) string { return u.Name })Example
go
import "github.com/sahilkhaire/gox/slice"
names := slice.Map(users, func(u User) string { return u.Name })Tips
Chain with slice.Filter and slice.Reduce for lodash-style pipelines. Pre-allocates output slice for performance.
Standard library alternative
Use the standard library directly:
go
names := make([]string, len(users))
for i, u := range users {
names[i] = u.Name
}