Пришло время рассмотреть новый язык программирования, созданный в недрах крупной компании Google, — Go. Это компилируемый и статически типизируемый язык общего назначения. Одним из авторов языка Go является Кем Томпсон, который принимал участие в разработке языка Си и системы Unix.
Go находит широкое применение в разработке клиент-серверных приложений, а также имеет ряд возможностей по работе с графикой, сетевыми утилитами и разными низкоуровневыми задачами.
Некоторые особенности языка:
- Компилируемый, за счет чего обеспечивается высокая производительность.
- Умный сборщик мусора, который автоматически очищает память.
- Статически типизированный, что также влияет на производительность, обнаружение ошибок, автодополнение и тд.
- Встроенная поддержка работы с сетевыми протоколами.
- Поддержка многопоточности и параллельного программирования.
Рассмотрим шаги по установке компилятора и написанию простейшего примера приложения.
Установка
Скачать компилятор можно с официального сайта. Выберите установщик под вашу операционную систему. Инструкцию по установке на разные системы смотрите там же.
После установки откройте терминал и введите команду, чтобы убедиться что все в порядке.
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.
А пока несколько полезных ссылок.
- https://gobyexample.ru/ — полезные примеры приложений на Go
- https://habrahabr.ru/post/326798/ — история языка и интересные факты