Golang: using pointers in for-range loop

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.

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *