본문으로 바로가기
COMMUNITY모든 이야기

Go channel close 후 수신 시 zero value 반환 문제

빗방울 2026.10.30 02:53 1분 읽기 조회 8

토이 프로젝트 중 워커 풀 구현 중입니다. 채널 닫힘 여부를 판별해서 루프를 종료하려는데 값이 계속 들어옵니다.

코드:

package main

import "fmt"

func main() {
	ch := make(chan int, 1)
	ch <- 10
	close(ch)

	for i := 0; i < 3; i++ {
		val := <-ch
		fmt.Println(val)
	}
}

오류: 10

0

0

시도: 채널 버퍼 크기 조정, select문 사용.

질문: 채널이 close 된 이후에 수신 시 0이 계속 반환되는 것을 방지하고 종료를 감지하려면 어떻게 해야 합니까?

모든 이야기1455

가벼운 안부부터 깊은 생각까지, 함께 나눠요.

글쓰기
총 1455개의 이야기
댓글