Go failing - ожидаемый "пакет", найденный "EOF",

Мне нелегко пытаться выполнить простую программу golang на виртуальной машине, на которой работает бродяга. Это соответствующие поля моего 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'

Учтите, что это полностью фальшивая программа. Странно то, что он полностью работает в другой среде. Что мне здесь не хватает?

Спасибо большое!

Ответ 1

Проблема не была не с GOROOT и GOPATH. В какой-то момент установка go не удалась, оставив все неустойчивое (файлы созданы, но полностью пустые). При повторной инициализации виртуальной машины модуль go проверяет, существуют ли файлы. Как это было сделано, потребовалось, чтобы установка уже имела место.

Очистка и свежая установка с нуля позволили решить проблему.

Ответ 2

Используя VS Code для GO, столкнулся с той же проблемой. Сохранение файла "Ctrl + S" в Windows устранило проблему.

Ссылка : Ответ нико

Ответ 3

Это обычно происходит, когда у вас есть файл, например. foo_test.go пустой или без объявления пакета.

Ответ 4

Для меня это также произошло с помощью 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")
}

Ответ 5

Просто сохраните файл, а затем запустите cammand.it работает.

иди беги main.go

Ответ 6

Как уже сказал Нико, при создании нового проекта и нового файла main.go эта ошибка будет появляться, когда файл не сохранен. Сохраните файл (Ctrl + S), и эта ошибка исчезнет как в Mac & окна. Я столкнулся с той же проблемой и только что решил ее, выполнив Ctrl + S в файле main.go.

Ответ 7

Как новый пользователь, я пришел к этому ответу, ища, чтобы кто-то сказал мне, что мне нужно запустить мои скрипты с помощью package main, хотя моя ошибка была немного иной,

... expected 'package', found 'import'

Теперь это очевидно, но эй, как это происходит.

Ответ 8

отдельный файл Go в том же пакете,не имел декларации "основной пакет" и из-за этого консоль выдавала ошибки при запуске файла Main GO.

При предоставлении основного объявления пакета в другой файл Go ошибка перестала отображаться.