관심있는 것들 정리
Golang 연습 7 (receive only channel) 본문
receive only channel( <- chan 으로 방향성을 주어 생성, send only는 chan<- 가 된다)을 생성해서 값을 넣고 해당 채널을 다른 함수로 넘겨 값을 받도록 함
매번 하는 실수지만, channel 처리 시 반드시 go routine으로 처리해야함... 안 그러면 deadlock 발생했다는 에러가 남
package main
import (
"fmt"
)
func getNum(numArray ...int) <-chan int {
ch := make(chan int)
go func() {
for _, val := range numArray {
ch <- val
}
close(ch)
}()
return ch
}
func printNum(ch <-chan int) {
for val := range ch {
fmt.Println(val)
}
}
func main() {
printNum(getNum(1, 2, 3, 4, 5))
}
반응형
'programming > Golang' 카테고리의 다른 글
High performance Go workshop (0) | 2021.01.26 |
---|---|
Golang select 정리 잘 된 사이트 (0) | 2021.01.26 |
Golang 연습 6 (channel close check) (0) | 2021.01.26 |
Golang 연습 5 (duck typing using interface) (0) | 2021.01.26 |
Golang 연습 4 (slice traversal) (0) | 2021.01.25 |