You can achieve the same effect without a function though: just create a local copy and use the address of that:
for _, each := range arr {
each2 := each
err := ds.repo.Insert(&each2)
// ...
}
Also note that you may also store the address of the slice elements:
for i := range arr {
err := ds.repo.Insert(&arr[i])
// ...
}
Solve “using a reference for the variable on range scope `xxxx` (scopelint)” error.