Почему Go выдает Undefined для структуры, объявленной в том же пакете?
Потому что вы запускаете только один файл main.go. Либо запускайте все *.go, либо напишите имена 2 файлов - go run main.go msg.go.
Потому что вы запускаете только один файл main.go. Либо запускайте все *.go, либо напишите имена 2 файлов - go run main.go msg.go.