Откройте свой терминал и запустите эту команду:
$ brew install go
Если у вас не установлен Homebrew, просто перейдите на этот сайт и следуйте инструкциям.
Теперь убедитесь, что у вас есть Go:
$ go version > go version go1.6.2 darwin/amd64 # or your Go version
Установите $ GOPATH
Вам необходимо указать расположение рабочей области Go, чтобы Go знал, где запускать ваш код. Вы сделаете это с помощью переменной окружения $ GOPATH. Go делает все относительно вашего $ GOPATH, поэтому вам нужно убедиться, что ваш $ GOPATH настроен правильно. Мы настроим это с помощью вашего профиля оболочки.
Откройте свой профиль оболочки с помощью Vim:
$ vim .bash_profile
Примечание. Чтобы получить ускоренный курс по vim, ознакомьтесь с этим классным руководством под названием Vimland.
Добавьте следующие строки в свой профиль оболочки. Это установит $ GOPATH в ваше рабочее пространство. Имя не имеет особого значения, но я предлагаю установить для $ GOPATH значение / go или / gocode. Пока вы поддерживаете структуру под ним, все должно работать нормально.
# GOPATH export GOPATH=”$HOME/go” export PATH=”$PATH:$GOPATH/bin”
После сохранения файла вы можете закрыть vim.
Проверьте настройку $ GOPATH, запустив:
$ echo $GOPATH > /Users/[USERNAME]/go
Навигация по рабочему пространству Go
Весь код Go хранится в одной рабочей области. Рабочая область содержит множество репозиториев . Репозитории содержат пакеты. Пакеты содержат исходные файлы Go.
Под зонтиком вашего рабочего пространства / go вы увидите три каталога:
> bin pkg src
Согласно Как писать код Go:
- src содержит исходные файлы Go
- pkg содержит объекты пакета
- bin содержит исполняемые команды
Сегодня мы сосредоточимся на каталоге src, поскольку он является источником истины для всего кода, который вы будете писать. Давайте сделаем каталог src.
$ mkdir src $ cd src $ pwd > /Users/[USERNAME]/go/src
Ранее мы упоминали репозитории, что рабочая область содержит множество репозиториев, которые содержат пакеты, содержащие исходные файлы Go. Репозитории контролируются версиями, как, например, Git.
В папке src у вас будет каталог с именем github.com. Использование в Go URL-адресов в качестве путей к файлам сначала кажется странным, но оказывается невероятно полезным при организации кода и навигации по рабочему пространству. src будет содержать весь ваш код Github, написанный на Go, а также другие репозитории управления версиями, которые могут быть у вас.
Чтобы управлять нашим кодом Github, нам нужно создать каталог с именем github.com в нашей папке src.
$ mkdir github.com
Теперь мы можем `cd` в каталог github.com, чтобы просмотреть наши замечательные репозитории Go. Здесь вы можете либо клонировать существующее репо, либо создать его. А пока мы создадим репозиторий Git под названием another-fancy-repo, чтобы мы могли его изучить, и начнем запускать какой-нибудь модный код Go.
Запуск нашей первой программы Go
$ cd github.com $ pwd > /Users/[USERNAME]/go/src/github.com $ mkdir fancy-go-repo $ cd fancy-go-repo
В нашем модном репозитории мы будем писать, запускать, создавать и тестировать наш код Go. Для нашего учебника мы будем запускать наш код, используя `go run`.
Внутри репозиториев создайте файл main.go.
$ touch main.go
Это будет наш основной файл. В конце концов у нас будет файл конфигурации (config.go) и пакеты, которые мы создаем (например, api / или сервер / пакет), но пока давайте просто остановимся на основах.
Go требует имени пакета в верхней части файла. Это указывает, из какого пакета будет запускаться файл. Поскольку у нас есть только один главный файл, а сейчас только один пакет, мы находимся в основном пакете. Во всем репозитории будет только одна функция с именем main, которая запускается из основного пакета в основном файле.
Чтобы продемонстрировать это, запишите это в свой файл main.go:
package main func main() { fmt.Println("Hello, world!") }
Теперь запустите файл:
$ go run main.go
Вы получили ошибку, которая выглядела примерно так?
# command-line-arguments ./main.go:4: undefined: fmt in fmt.Println
Хорошо. Нам нужно импортировать пакет fmt, чтобы использовать оператор Println. Операторы импорта Go мощны и идут после имени пакета. fmt - это встроенный пакет, поэтому мы получаем его бесплатно. Давайте импортируем его в начало файла:
package main import "fmt" func main() { fmt.Println("Hello, world!") }
Теперь попробуйте запустить файл:
$ go run main.go > Hello, world!
Прекрасная работа!
Написание красивого, безошибочного кода
Чтобы код был безошибочным, убедитесь, что вы пропустили код через golint и пройдите проверку. Кроме того, ваш редактор должен запускать goimports при сохранении.
- Golint проверяет, что стиль кодирования приятный, и удостоверяется, что ваш код соответствует принятому стилю проекта Go с открытым исходным кодом (даже Google использует его!). Он распечатает ваши стилистические ошибки.
- Go vet заботится о правильности вашего кода. Он использует статический анализ.
- Goimports - это инструмент для автоматического исправления (добавления, удаления) вашего импорта Go. Goimports запустит для вас gofmt, который переформатирует исходный код Go.
Что дальше…
Если вы хотите глубже погрузиться в чудесный мир го, я рекомендую вам ознакомиться с интерактивным Tour of Go от создателей Golang.
Дополнительные ресурсы
50 оттенков ловушек, подводных камней и типичных ошибок для новых разработчиков на Голанге
Руководство по стилям программирования Go
Создание веб-приложения с помощью Golang
Массивы, срезы (и строки): механизм« добавления »
Перейти к шаблонам параллелизма: конвейеры и отмены
Если вам понравился этот Intro to Go, порекомендуйте его и поделитесь с другими. Размещайте любые вопросы, которые у вас есть, ниже!
Спасибо за чтение!