Files
lo/docs/data/parallel-foreach.md
T
Nathan Baulch e7386d9246 lint: fix inconsistent callback function parameter names (#730)
* Fix linting

* Use is.ElementsMatch

This will ignore the ordering of the final intersection. Especially
important when checking old versions of go that do not guarantee an order
when iterating through maps.

* lint: fix inconsistent callback function parameter names

* lint: rename "iteratee" to "transform" for *Map helpers

* lint: rename "project" parameters to "transform"

* lint: rename "cb" parameters to "callback"

* lint: rename "iteratee" to "callback" for ForEach helpers

---------

Co-authored-by: Franky W. <frankywahl@users.noreply.github.com>
Co-authored-by: Samuel Berthe <dev@samuel-berthe.fr>
2025-11-06 18:05:11 +01:00

911 B

name, slug, sourceRef, category, subCategory, playUrl, similarHelpers, position, signatures, variantHelpers
name slug sourceRef category subCategory playUrl similarHelpers position signatures variantHelpers
ForEach foreach parallel/slice.go#L32 parallel slice https://go.dev/play/p/sCJaB3quRMC
core#slice#foreach
parallel#slice#map
10
func ForEach[T any](collection []T, callback func(item T, index int))
parallel#slice#foreach

Iterates over elements of a collection and invokes the callback for each element in parallel.

import (
    "fmt"
    lop "github.com/samber/lo/parallel"
)

lop.ForEach([]string{"hello", "world"}, func(x string, _ int) {
    fmt.Println(x)
})
// prints lines in any order depending on scheduling

Useful for fire-and-forget work like publishing events or independent side effects:

type Job struct{ ID int }

jobs := []Job{{1}, {2}, {3}}
lop.ForEach(jobs, func(j Job, _ int) {
    // process each job concurrently
    // send(j)
})