# Go (Русский)

Эта страница нуждается в сопроводителе

Статья не гарантирует актуальность информации. Помогите русскоязычному сообществу поддержкой подобных страниц. См. Команда переводчиков ArchWiki

Go — компилируемый, многопоточный язык программирования со статической типизацией, ориентированный на высокопроизводительные приложения.

## Установка

На сегодняшний день существует два компилятора Go и оба доступны в официальном репозитории:

- gc: общее название для официального набора компиляторов 8g(x86), 6g(amd64), 5g(arm), устанавливается с пакетом go

    + быстрая компиляция
    ‒ только статическая линковка(динамическая в планах)

- gccgo: фронтэнд для gcc, входит в состав его коллекции компиляторов, устанавливается с пакетом gcc-go

    + малый размер двоичного файла
    + хорошая оптимизация
    ‒ goroutines становятся полноценными потоками(проблема решается использованием gold линковщика)

### Проверка установки

Для проверки работоспособности создайте простенькую программу:

    test.go

    package main

    import "fmt"

    func main() {
        fmt.Println("Привет, Арч!")
    }

Запустите программу при помощи Go:

    $ go run test.go

    Привет, Арч!

Компиляция стандартным компилятором gc (аналог `go build -compiler=gc test.go`):

    $ go build test.go

Компиляция с помощью gccgo (аналог `go build -compiler=gccgo test.go`):

    $ gccgo test.go -o test

Компиляция с помощью gccgo и линковщика gold:

    $ gccgo test.go -fuse-ld=gold -o test

### $GOPATH

В языке Go поиск программ и их зависимостей (например, `import пакет`) сначала выполняется в каталогах, прописанных в переменную `$GOPATH`, а затем - в переменной `$GOROOT` (путь установки go, по умолчанию `/usr/lib/go`). Поэтому, чтобы использовать внешние зависимости, а не только базовые, что находятся в `$GOROOT`, нужно определить область рабочего пространства в вашем `~/.bash_profile` (или его эквиваленте):

    $ export GOPATH=~/go

Совет: Для просмотра переменных Go выполните команду `go env`

Создадим также само рабочее пространство:

    $ mkdir -p ~/go/{bin,src}

Каталог `src` предназначен для хранения исходников проектов, а `bin` - для размещения исполняемых файлов, которые получаются, например, при установке наших проектов (`go install пакет`) или получении и установки пакета из других источников (`go get github.com/путь/к/пакету`).

Для удобства можно также добавить в переменную окружения `$PATH` путь к каталогу `bin` нашего рабочего пространства, что позволит запускать установленные программы языка Go так же, как, к примеру, и стандартную для linux команду `ls`:

    $ export PATH="$PATH:$GOPATH/bin"

Для получения дополнительной информации смотрите `go help gopath`.

## Смотрите также

- Официальный веб-сайт языка Go (en)
- Статья в Википедии
- Русская группа в G+
- Хаб на Habrahabr про Go
- Веб-ресурс посвящённый Go
- Примеры с кратким описанием (en)
- Интерактивный тур обучения Go
- Интерактивный тур обучения Go (en)
- IDE и плагины для Go

Categories:

- Русский
- Programming languages (Русский)