1// run 2 3// Copyright 2021 The Go Authors. All rights reserved. 4// Use of this source code is governed by a BSD-style 5// license that can be found in the LICENSE file. 6 7package main 8 9import "fmt" 10 11func main() { 12 ch := make(chan int, 1) 13 14 var ptrs [2]*int 15 for i := range ptrs { 16 ch <- i 17 select { 18 case x := <-ch: 19 ptrs[i] = &x 20 } 21 } 22 23 for i, ptr := range ptrs { 24 if *ptr != i { 25 panic(fmt.Sprintf("got *ptr %d, want %d", *ptr, i)) 26 } 27 } 28} 29