3. URL Checker
channel, goroutine practice
nomadCoder 강의 실습 #3
main.go
map 초기화 하기.
var results = make(map[string]string)
make는 map을 초기화 시켜주는 함수이다.
var results = map[string]string{}
map을 정의하고 끝에 {}를 넣어 빈 값으로 초기화 시켜준다.
var results map[string]string
이렇게 하면 map이 초기화 되지 않아서 results에 어떤 값을 넣으려고 할 때 compiler가 panic한다.
goroutine
main function이 존재하는 동안만 유효하다.
main function은 goroutine을 기다려주지 않는다.
channel
goroutine과 main 혹은 goroutine과 goroutine 사이에 커뮤니케이션 할 수 있게 해줌.
아래는 아주 간단한 goroutine, channel 예제이다.
함수 안에서 channel c에 값을 넘겨주고 <-c로 main funtion에서 어떤 값이 나오는지 기다린다. (blocking operation)
channel에 2개의 값만 넣었는데 <-c를 3개 한다면 main 함수는 마지막 1개의 값이 나오지 않아서 계속 기다린다. 혹은 dead lock에 걸린다.
func foo(c chan<- bool){} 이런식으로 선언하면 해당 채널은 send-only 라는 뜻이다.
Go packages
Last updated