Нет ( здесь не применяется ), у вас есть новая переменная (адрес памяти) на каждой итерации l oop:
case request := <-runCh:
Поскольку :=
создает новую переменную в отличие от предыдущего, подтверждение:
package main
import (
"fmt"
"time"
)
func main() {
runCh := make(chan int, 2)
runCh <- 1
runCh <- 2
for i := 1; i <= 2; i++ {
select {
case request := <-runCh:
go func() {
fmt.Println(request, &request)
time.Sleep(200 * time.Millisecond)
fmt.Println(request, &request)
}()
}
}
time.Sleep(500 * time.Millisecond)
}
Вывод (адрес request
в каждой итерации l oop отличается):
1 0xc0000b8000
2 0xc0000b8008
1 0xc0000b8000
2 0xc0000b8008
См .: 0xc0000b8000! = 0xc0000b8008