Why does fmt.Println inside a goroutine not print a line?
go
Solution
Your program will exit when the `main()` function finishes. This is likely to happen before your goroutine has time to run and print its output.
One option would be to have the main goroutine block reading from a channel, and have the goroutine write to the channel when it has completed its work.
Problem
I have the following code: ``` package main import "net" import "fmt" import "bufio" func main() { conn, _ := net.Dial("tcp", "irc.freenode.net:6667") reader := bufio.NewReader(conn) go func() { str, err := reader.ReadString('\n') if err != nil { // handle it fmt.Println(err) } fmt.Println(str) }() } ``` If I don't have the code that reads from the buffer in a goroutine, it outputs a message like this, which is what I expect to happen: ``` :zelazny.freenode.net NOTICE * :*** Looking up your hostname... ``` However, having it inside a goroutine prints nothing. Can someone explain why that is?