2014-04-22 2 views
0

Я новичок в языке Go, и я хотел понять, как настроена среда Go.Настройка языкового проекта Go в Windows

Есть две вещи, которые я еще не совсем понимаю, и я надеялся, что сообщество может прояснить ситуацию.

Что такое настройка проекта Go, как и как работает путь go?

Я спрашиваю об этом с точки зрения окон.

  • У проектов Go есть стандартный способ настройки?
  • Почему все зависимости находятся в одном месте?
  • Разве они могут быть разделены между несколькими проектами и не контролироваться версией?
  • Должен ли я установить путь перехода к проекту в папку проекта? Я не знаю.

ответ

2

Ответ на все ваши вопросы здесь: http://golang.org/doc/code.html Вы должны действительно прочитать эту страницу, но подвести итог основной причины, почему вам нужно структурировать ваши пойдут рабочие области, что путь, так инструмент идти (это включает в себя компилятор и инструмент для автоматической загрузки библиотек) могут делать все, что он делает.

При установке идут программы она автоматически помещается в $GOPATH/bin, и при создании библиотеки, он автоматически добавляется в $GOPATH/pkg позволяет иметь централизованное место для сторонних библиотек и тем самым мешает вам делать ненужные копии библиотек , Ваши проекты должны быть в $GOPATH/src/some_online_repository_location/project_name или $GOPATH/src/project_name. Последняя часть пути - это имя пакета, но вы должны прочитать об этом в http://golang.org/doc/effective_go.html#names.

ПРИМЕР: Для вас приветствуете проект, который вы размещаете на github, правильный путь на вашем рабочем пространстве: $GOPATH/src/github.com/youruser/hello/. Это позволяет инструменту go автоматически загружать библиотеки из онлайн-репозиториев с помощью команды go get. Пример: go get github.com/youruser/hello

Поддержание этого «стандартного» решения позволяет легко работать во всех системах без какой-либо конфигурации, а также имеет побочный эффект, заключающийся в том, что все проекты проекта структурированы одинаково, поэтому, когда вы получаете чужой код вы знаете, как он структурирован, и вы знаете, что он будет работать в вашем текущем рабочем пространстве.

Прочтите все документ http://golang.org/doc/code.html, и вы должны понимать его лучше. Надеюсь, это поможет, прокомментируйте, если у вас есть какие-либо сомнения.

+0

Спасибо, я понял. – dmportella

1
An Example 

GOPATH = c:\gocode 
App has 4 code files = msg.go (main), web.go, channel.go, date.go 
App uses 1 external library = martini 

**Source Locations**: 
c:\gocode\src\app\msg\  (package is msg) 
... web.go, channel.go 
c:\gocode\src\app\msg\main\ (package is main) 
... msg.go     
c:\gocode\src\lib\  (package is lib) 
... date.go 
c:\gocode\src\github.com\go-martini\martini (pkg is martini) 
... all martini lib files  

**Imports Used by File** (Import Pkgs Not Files, All Paths Relative to $GOPATH/src) 
msg.go 
... import “app/msg” > provides access to exported elements in web.go, channel.go 
... import “lib” > provides access to exported elements in date.go 
web.go 
... import “lib” > provides access to exported elements in date.go 
... import “github.com/go-martini/martini” 

Note: 
All files in the same pkg can access each other’s elements, even non exported ones. 
No import needed or allowed, just a plain reference, as thought it was in the same file. 
Смежные вопросы