Исходные файлы одного и того же пакета могут без каких-либо усилий ссылаться на идентификаторы, определенные в любом из исходных файлов. Если они находятся в одной и той же папке, и если они имеют одно и то же объявление пакета, вы можете передать все экспортированные и невыполненные идентификаторы на уровне пакетов, как если бы все они были определены в одном файле.
См Spec: Packages:
пакет в свою очередь, строится из одного или нескольких исходных файлов, которые вместе декларируют константы, типы, переменные и функции, относящиеся к пакету и которые доступны во всех файлах одного и того же пакета ,
И Spec: Package clause:
Набор файлов, совместно использующих те же PackageName образуют реализацию пакета. Реализация может потребовать, чтобы все исходные файлы для пакета находились в одном каталоге.
Замечание: ваш пример представляет собой специальный пакет main
. Если вы хотите запустить его с помощью go run
, вам необходимо перечислить все исходные файлы.
Чтобы запустить пример с go run
, перейдите к папке gddo-server
и типа:
go run background.go browse.go client.go crawl.go graph.go main.go play.go template.go
Или проще, если вы первый построить его. Перейдите в папку gddo-server
и тип:
go build
Это создаст родной исполняемый файл в той же папке. Для его запуска введите: gddo-server
(в Windows) или ./gddo-server
(в Linux).
Или вы можете установить его с помощью go install
, который поместит исполняемый файл результата в папку $GOPATH/bin
.
Исходные файлы того же пакета могут без каких-либо усилий ссылаться на идентификаторы, определенные в любом из исходных файлов. Если они находятся в одной и той же папке, и если они имеют одно и то же объявление пакета, вы можете передать все экспортированные и невыполненные идентификаторы на уровне пакетов, как если бы все они были определены в одном файле. – icza