Разработка на Go. Первые шаги

4 min read

Пришло время рассмотреть новый язык программирования, созданный в недрах крупной компании Google, — Go. Это компилируемый и статически типизируемый язык общего назначения. Одним из авторов языка Go является Кем Томпсон, который принимал участие в разработке языка Си и системы Unix.

Кен Томпсон (в центре) на вручении почетного приза Japan Prize Foundation за создание Unix

Go находит широкое применение в разработке клиент-серверных приложений, а также имеет ряд возможностей по работе с графикой, сетевыми утилитами и разными низкоуровневыми задачами. 

Некоторые особенности языка:

  1. Компилируемый, за счет чего обеспечивается высокая производительность.
  2. Умный сборщик мусора, который автоматически очищает память.
  3. Статически типизированный, что также влияет на производительность, обнаружение ошибок, автодополнение и тд.
  4. Встроенная поддержка работы с сетевыми протоколами.
  5. Поддержка многопоточности и параллельного программирования.

Рассмотрим шаги по установке компилятора и написанию простейшего примера приложения.

Установка

Скачать компилятор можно с официального сайта. Выберите установщик под вашу операционную систему. Инструкцию по установке на разные системы смотрите там же.

После установки откройте терминал и введите команду, чтобы убедиться что все в порядке.

go version

Структура папок

Все проекты, написанные на Go, находятся в одном месте (Workspace) и состоят из трех корневых каталогов: bin, src и pkg.

В папке bin находятся скомпилированные и исполняемые файлы. В src — исходный код ваших проектов, а в pkg исполняемые файлы-зависимости. 

bin/ hello # Исполняемый файл outyet # Исполняемый файл pkg/ linux_amd64/ github.com/golang/example/ stringutil.a # Объект пакета src/ github.com/golang/example/ .git/ # Метаданные Git репозитория hello/ hello.go # Исходный код outyet/ main.go # Исходный код main_test.go # Тест stringutil/ reverse.go # Исходный код пакета reverse_test.go # Тест golang.org/x/image/ .git/ # Метаданные Git репозитория bmp/ reader.go # Исходный код пакета writer.go # Исходный код пакета ...

Для того, чтобы компилировать ваши Go-файлы, необходимо указать путь к Workspace в переменной окружения GOPATH. 

В Go 1.9+ под Unix установщик автоматически определяет для GOPATH путь к рабочей директории  ~/go. На Windows переменная задается через специальный интерфейс. При необходимости вы можете изменить значение GOPATH, но, как правило, этого не требуется.

Hello, World!

Создадим папку проекта src/myFirstGoApp в рабочей директории (Workspace), а внутри этой папки — файл main.go. Файлы языка имеют расширение *.go.

Добавим в файл main.go следующие строки

package main import "fmt" func main() { fmt.Println("Hello, World!") }

Чтобы запустить приложение, необходимо в терминале перейти в корень нашего myFirstApp проекта и выполнить команду

go run main.go

Если в терминале вы увидели Hello, World!, значит можно вас поздравить с первой программой на Go.

Все программы на Go состоят из пакетов. Название пакета всегда указывается в начале кода, а затем идет импорт необходимых библиотек и пакетов. В коде выше для вывода текста мы используем функцию Println пакета fmt. В одной директории может быть объявлен только один пакет.

Что дальше

Теперь все готово к разработке более прикладных приложений. В следующей статье рассмотрим как написать простой веб-сайт с помощью встроенных возможностей Go

А пока несколько полезных ссылок.