[go] 채널 데이터 타입

Go 언어에서 채널은 고루틴 사이의 통신을 위한 메커니즘으로 사용됩니다. 채널은 값을 주고 받는데 사용되며, 각 채널은 독립적인 데이터 타입을 가집니다.

채널 선언

아래는 정수 값을 주고 받는 채널의 선언 예시입니다.

var ch chan int

위 예시에서 ch는 정수 값을 주고 받는 채널을 나타냅니다.

채널 사용

채널을 통해 값을 주고 받기 위해서는 make 함수를 사용하여 채널을 생성해야 합니다.

ch := make(chan int)

이제 ch 채널을 통해 값을 송수신할 수 있습니다.

ch <- 100 // 채널에 정수 값 100을 보냄
num := <-ch // 채널로부터 값 수신

닫힌 채널

채널은 닫힐 수 있습니다. 닫힌 채널로 값을 전송하면 패닉이 발생합니다. 또한, 닫힌 채널에서 값을 수신하면, 해당 채널이 닫힌 것인지 아닌지를 확인할 수 있습니다.

채널을 닫는 방법은 아래와 같습니다.

close(ch)

채널이 닫혔는지 확인하기 위해서는 추가적인 변수를 이용하여 수신한 값을 검사할 수 있습니다.

num, ok := <-ch // ok가 false면 채널이 닫힘

이처럼 Go 언어에서는 채널을 통해 고루틴 간 안전하고 효율적인 통신을 가능하게 합니다.

참고 자료

위의 내용은 Go 언어에서의 채널 데이터 타입에 대한 간략한 소개입니다. 추가적인 자세한 내용은 Go 언어의 공식 문서를 참고하시기 바랍니다.