Eu estava aprendendo Go
Channel
. Fiz um pequeno programa abaixo emGo
package main
import "fmt"
func sample(mychan chan string) {
fmt.Println("Go Go Go Go")
fmt.Println("message received from channel is ", <-mychan)
}
func main() {
messageChan := make(chan string)
go sample(messageChan)
messageChan <- "hello"
}
O que está acontecendo é que às vezes ele mostra a declaração "mensagem recebida...". E às vezes não mostra. E sempre mostra a declaração "Go Go Go...". Então por que ele pula a declaração "mensagem recebida". O que é esse comportamento? Estou confuso.