Go

Оглавление:

Справочник по Go

GoGo (или часто встречающийся Golang) — язык программирования с открытым исходным кодом, позволяющий программистам быть более продуктивными.

Язкы программирования Go кросплатформенный, его поддержка и разработка представлена в следующих операционных системах:

  • FreeBSD

  • OpenBSD

  • Linux

  • Mac OS X

  • Windows

С версии 1.3 так же осуществлена поддержка в DragonFlyBSD, Plan9, Solaris.

Начиная с версии 1.4 появилась поддержка платформы Android.

Основные возможности

Основные возможности языка программирования Go заключаются в следующем:

  • Статическая типизация, а так же доступен автоматический вывод пользовательских типов.

  • Полноценная поддержка указателей, но без возможности применять арифметические действия.

  • Строковый тип со встроенной поддержкой юникода.

  • Использование динамических массивов, хэш-таблиц, срезов (слайсов), вариантов цикла для обхода коллекций.

  • Средства функционального программирования: наименованные функции, замыкания, передача функций в параметрах и возврат функциональных значений.

  • Автоматические управление памятью.

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

  • Средства параллельного программирования: встроенные в язык потоки (go runtimes), взаимодействие потоков через каналы и другие средства организации много поточных программ.

  • Достаточно лаконичный и простой синтаксис, основанный на C, но существенно доработанный.

Синтаксис

Основные особенности синтаксиса заключаются в следующем:

  • Go регистрозависимый язык программирования с полной поддержкой Юникода в строках и идентификаторах.

    Идентификатор традиционно может быть любой непустой последовательностью, включающей буквы, цифры, знаки подчеркивания, которые начинаются с буквы и не совпадают ни с одним словом языка Go. В языке Go под “буквами” подразумеваются все символы юникода, которые относятся к категориям “Lu” буквы верхнего регистра, “LI” буквы нижнего регистра, “Lt” заглавные буквы, “Lm” буквы-модификаторы или “Lo” прочие буквы, цифры задаются “Nd” числа или десятичные цифры. Использование идентификаторов позволяет использовать все разнообразие языков присутствующие в юникоде.

  • Система пакетов.

    Пакеты — наборы готовых исходных кодов. Пакеты могут быть как стандартными, которые поставляются с самим языком программирования, так сторонними, например для работы с СУБД, так и разработанные во время решения поставленных задач. Имена пакетов имеют те же ограничения, что и идентификаторы, но запись имени пакета осуществляется только в нижнем регистре. Система пакетов go-среды имеет древовидную структуру, аналогичную дереву каталогов.

  • Испольняемая программа на Go обязательно должна иметь пакет с именем „main“. В данном пакетеобязательно должна быть функция main() без параметров и возвращаемого значения. Функция main.main() является „телом программы“ — данная функция запускается при старте программы. По мимо main() в пакете main может присутствовать функция init(), а так же init() может присутствовать в любом импортируемом пакете. Система гарантирует, что функция init() импортируемого пакета всегда вызывается раньше функции init() импортирующего. Таким образом, инициализация пакета main всегда происходит последней, и все инициализация выполняются до начала исполнения функции main.main(). Список, описание стандартных и сторонних примеров, а так же примеры их использования представлены на данной странице “Пакеты Go”.

  • Базовый синтаксис.

    В базовом синтаксисе рассмотрены следующие примеры:

    • Комментарии

    • Использование точек с запятой

    • Объявление типов

    • Объявление переменных

    • Автоматический вывод типов

    • Присваивание

    • Аргументы функций и методов

    • Локальные переменные и псевдопеременные “_”

    • Вызов “defer”

    • Остальные различия

    • Обработка ошибок

    • Многопоточность

    • Объектно-ориентированное программирование