Почему моя программа не выполнена?

Я учу Го, и я хотел попробовать горутины и каналы.

Вот мой код:

package main
import "fmt"
func main(){

messages := make(chan string,3)

messages <- "one"
messages <- "two"
messages <- "three"

go func(m *chan string) {
    fmt.Println("Entering the goroutine...")
    for {
        fmt.Println(<- *m)
    }
}(&messages)

fmt.Println("Done!")
}

И вот результат:

Done!

Я не понимаю, почему моя процедура не выполняется. «Вход в программу» не печатается, и у меня нет сообщений об ошибках.

Ответы на вопрос(2)

Ваш ответ на вопрос