Я изучаю язык Go, и я сделал этот пример: http://thenewstack.io/make-a-restful-json-api-go/ для создания простого API REST.Схема GoLang и пакетов с относительными путями
Я скомпилировал его, и все работает нормально, но все источники находятся в основном пакете.
Теперь я хочу, чтобы организовать мои .go файлы в пакетах, так что я переместить их в несколько папок таким образом:
GOPATH\bin
GOPATH\pkg
GOPATH\src\pack1\Handlers.go
GOPATH\src\pack1\Logger.go
GOPATH\src\pack1\repo.go
GOPATH\src\pack1\Todo.go
GOPATH\src\router\Router.go
GOPATH\src\router\Routes.go
GOPATH\src\Main.go
Main.go использует весь маршрутизатор пакет, так что я положил в разделе импорта : "./router". Router.go использует пакет pack1, поэтому в Router.go я импортировал «../pack1». Теперь, если я пытаюсь «идти строить Main.go» я получаю:
router\Router.go:6: imported and not used: "_/D_/GOPATH/src/pack1"
router\Router.go:14: undefined: Logger
и подобные ошибки, поэтому кажется, что импорт пакета pack1, что я сделал, это неправильно. Конечно, во всех файлах, принадлежащих pack1, в заголовке я поставил определение «package pack1».
Я также читал, что относительный импорт не предлагается в Go, и было бы полезно использовать удаленные пакеты, такие как импорт github.com/myrepo/mypackage. Но я не хочу использовать удаленный импорт; Я хочу вытолкнуть все мои файлы в другой момент.
Не могли бы вы помочь мне лучше понять, каков способ локального импорта между пакетами на языке Go?
заранее спасибо
Read (или перечитать) через [Как писать Перейти код ] (https://golang.org/doc/code.html), который будет объяснять все более подробно. – JimB
Обратите внимание, что ошибки читаются как «импортированные и не используемые», поэтому запрос на импорт работал, но вы не использовали символ пакета pack1. Это относится к следующей ошибке «undefined: Logger»: если 'Logger' живет в пакете pack1, чем вы ссылаетесь на него из любого другого пакета как' pack1.Logger'. Перечитайте «Как написать код перехода» и взгляните на некоторые рабочие пакеты в Интернете. – Volker
Спасибо, ребята за ответ, теперь я понял, как правильно импортировать пакеты! Таким образом, это также проще!У меня есть последний вопрос: я до сих пор не могу скомпилировать проект: внутри Router.go есть экземпляр Logger, поэтому в Router.go я импортировал пакет «pack1», но он говорит, что Logger undefined: \ where am I делать не так? –