Go failing-ожидаемый "пакет", найден "EOF"
мне было трудно выполнить простую программу golang на виртуальной машине, работающей от vagrant.
Это соответствующие поля my go env
:
GOARCH="amd64"
GOPATH="/usr/local/src/go"
GOROOT="/usr/local/go"
GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"
Это программа, которую я пытаюсь выполнить ( находится в /usr / local/src / go / program):
package program
import (
"fmt"
)
func main() {
fmt.Print("Aloha")
}
этот вывод, который я получаю:
main.go:4:5:
/usr/local/go/src/fmt/doc.go:1:1: expected 'package', found 'EOF'
package runtime:
/usr/local/go/src/runtime/alg.go:1:1: expected 'package', found 'EOF'
примите во внимание, что это полностью поддельная программа. Странно то, что он полностью работает в другой среде. Что такое Я скучаю здесь?
Спасибо большое!
5 ответов
Это обычно происходит, когда у вас есть файл, например, foo_test.go пустой или без объявления пакета.
использование VS-кода для GO и столкнулся с той же проблемой. Сохранение файла "Ctrl+S" в Windows Исправлена проблема.
ссылка : ответил Нико
проблема не была ни с GOROOT
, ни GOPATH
. В какой-то момент установка go не удалась, оставив все это нестабильным ( файлы созданы, но полностью пусты ). При повторной подготовке виртуальной машины модуль go проверил наличие файлов. Как они и сделали, было само собой разумеющимся, что установка уже состоялась.
очистка и свежая установка с нуля решили проблему.
для меня это также произошло с помощью Atom + Go Plus + Terminal Plus. Проблема заключалась в том, что ведущий кронштейн не был на "правильной" линии.
Примечание: Go Plus предупреждает о синтаксисе при сохранении, но я импортировал этот файл после его создания локально с помощью VIM, поэтому мне никогда не представлялись ошибки lint...
ошибка:
package main
import "fmt"
func main()
{
fmt.Println("hello world")
}
правильно:
package main
import "fmt"
func main() {
fmt.Println("hello world")
}
Как новый пользователь go я наткнулся на этот ответ, ища кого-то, кто скажет мне, что мне нужно начать мои скрипты с package main
хотя моя ошибка была немного другой,
... expected 'package', found 'import'
теперь это действительно очевидно, но эй, вот как это происходит.