golangで配列から必要な値を使おうと、forを回して値をポインタで取得したら失敗したので残しておきます。
var result1 *int64
var result2 *int64
check := []int64{1,2,3,4,5,6}
for _, v := range check {
if v == 3 {
result1 = &v
}
if v == 4 {
result2 = &v
}
}
fmt.Println(result1)
fmt.Println(result2)
6
6
デリファレンスでvのポインタを保持するようにしているため、結果として配列の最後の値になってしまいました。
for文のkeyとvalueは、それぞれループで同じポインタを利用しているみたいです。
var result1 *int64
var result2 *int64
check := []int64{1,2,3,4,5,6}
for k, v := range check {
if v == 3 {
result1 = &check[k]
}
if v == 4 {
result2 = &check[k]
}
}
fmt.Println(result1)
fmt.Println(result2)
3
4
期待した内容のプログラムも書いてみました。
大丈夫そうです。