[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 언어의 공식 문서를 참고하시기 바랍니다.