Golang для начинающих

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

Содержание статьи

Не все языки программирования задействуют данный подход. Python, Ruby и некоторые другие популярные языки используют интерпретатор для перевода одного оператора за раз по ходу выполнения программы. Это значит, что в непротестированных частях программы могут остаться баги.

Форум Гоферов

Мы работаем над форумом для программистов на Golang. Очень нужны модераторы которые хотят помочь с ответами для новичков и помочь в развитии Go-сообщества.

Go на Форум

Уроки, статьи и Видео

Мы публикуем в паблике ВК и Telegram качественные обучающие материалы для быстрого изучения Go. Подпишитесь на нас в ВК и в Telegram. Поддержите сообщество Go программистов.

Go в ВК Go в Telegram

С другой стороны, интерпретаторы делают процесс написания кода быстрым и интерактивным, язык становится динамичным, ничем не обремененным. У компилированных языков сложилась репутация более статичных, неподвижных роботов, которых программистам приходиться усмирять. Сами компиляторы зачастую высмеивают за их медлительность. Но должно ли все быть именно так?

Мы хотели добиться безопасности и производительности статически компилируемых языков вроде С++ или Java, а также легкости и свободы интерпретируемых языков с динамической типизацией наподобие Python.

— Роб Пайк, Geek of the Week (Источник)

Go создан с большим вниманием к опыту написания программного обеспечения.
Большие программы компилируются за считанные секунды одной командой. Язык опускает аспекты, что приводят к неоднозначности, и пытается добиться предсказуемого и понятного кода. Go также предоставляет легкую альтернативу жесткой конструкции, навязанной
классическими языками наподобие Java.

Java опускает многие, редко используемые, зачастую сложные и запутанные особенности С++. Однако нам кажется, что это скорее минус, нежели плюс.

— Джеймс Гослинг, Java: an Overview

Каждый новый язык программирования переосмысливает идеи прошлого. Go, используя эффективность памяти, делает это с легкостью, избегая ошибок предшественников. Язык использует преимущество каждого ядра многоядерного процессора. Некоторые предприятия смогли добиться успеха после перехода на Go. К примеру, Iron.io заменил 30 серверов с Ruby на 2 сервера с Go (Источник). Bitly также добился существенного роста производительности после переписывании приложений Python в Go и последующей замены приложений C на Go (Источник).

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

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

— Go Brand Book

Обратит внимание, что при поиске информации о Go в Интернете лучше задействовать ключевое слово golang, то есть Go language. Суффикс -lang может использоваться и с другими языками программирования вроде Ruby, Rust и так далее.

Go Playground — Запуск кода онлайн

Начать практиковаться в Go можно на официальном сайте языка, где для этого есть специальный редактор — Go Playground. Здесь можно редактировать, выполнять и экспериментировать с Go без необходимости предварительно устанавливать что бы то ни было. При нажатии на кнопку Run код будет скомпилирован и выполнен на серверах Google, после чего отобразится результат.

Go Playground

При нажатии на кнопку Share вы получите ссылку на созданный код. Ее можно отправить друзьям или сохранить в закладках.

На заметку: Для проверки кода из примеров, данных далее, можете использовать Go Playground. Если вы уже знакомы с текстовыми редакторами и командной строкой, можете скачать и установить Go на компьютер.

Пакеты и функции в Golang

При переходе на Go Playground вы увидите следующий код. Это неплохая начальная точка.

В данном кратком коде представлено три ключевых слова: package, import и func. У каждого слова есть свое предназначение.

Ключевое слово package объявляет пакет, которому текущий код принадлежит. В данном случае пакет называется main. Весь код Go строится на концепции пакетов.

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

  • математики;
  • сжатия данных;
  • криптографии;
  • обработки изображений и многого другого.

Каждый пакет соответствует одной идее.

На следующей строке используется ключевое слово import для уточнения пакетов, которые будут задействованы в коде. Пакеты могут содержать любое количество функций. К примеру, пакет math предоставляет функции вроде Sin, Cos, Tan и Sqrt (квадратный корень).

Используемый здесь пакет fmt нужен для функций форматированного ввода и вывода. Отображение текста на экране является обычной операцией, поэтому название пакета было сокращено до более удобного — fmt.

Гоферы, или разработчики Go, произносят слово fmt как «FOOMT!», будто эффект взрыва из комикса.

Ключевое слово func объявляет функцию, в данном случае это main. Тело каждой функции обрамляется фигурными скобками {}. Именно с такой скобки начинается и заканчивается каждая функция Go.

Идентификатор main особенный. При запуске программы Go выполнение начинается с функции main из пакета main. Если в коде нет main, компилятор Go выдаст ошибку, так как  без нее он не будет знать, где начинается программа.

Для вывода строки текста используется функция Println (ln сокращенно от line, то есть строка). У Println ставится префикс fmt, за которым следует точка. Это знак того, что здесь задействован пакет fmt. При использовании функции из импортированного пакета перед названием функции всегда ставится префикс с названием пакета и точкой. По этой причине во время чтения программы Go сразу понятно, к какому пакету относится каждая функция.

Запустите данную программу в Go Playground, чтобы получить текст Hello, playground. Текст, заключенный в кавычки, отобразится на экране. При написании обычного предложения поставленная не в том месте запятая может сильно изменить смысл фразы. Пунктуация играет важную роль и в программировании. В Go используются кавычки и скобки различного вида, которые позволяют облегчить процесс написания и чтения кода.

Скобки в Golang

Go достаточно придирчив в плане места размещения фигурных скобок {}. В предыдущем примере открывающая скобка { находится на той же строке, что и ключевое слово func. Закрывающая скобка } расположена на отдельной строке. Это единственный правильный скобочный стиль, также известный как one true brace style или 1TBS.

Чтобы понять, как Go стал таким строгим языком, нужно вернуться к времени его создания. Тогда структура кода был переполнена точками с запятой. Они были везде. Каждый оператор заканчивался точкой с запятой. К примеру:

В декабре 2009 группе разработчиков Go удалось избавиться от точек с запятой из языка. Хотя, не совсем. По сути дела, компилятор Go стал автоматически добавлять точки с запятой. Все отлично. Однако теперь стало важным придерживаться единственного правильного скобочного стиля.

При размещении открывающей скобки в отдельной от ключевого слова func строке, компилятор Go выдаст ошибку синтаксиса:

Компилятор немного запутался. Точка с запятой была автоматически вставлена не в том месте. Будет лучше, если в процессе разбора уроков вы будете самостоятельно набирать тексты программ, чтобы лучше понять принцип их работы. Ошибки синтаксиса и опечатки неизбежны, и для ускорения работы в будущем очень полезно их корректировать и исправлять на этапе обучения.

Заключение

  • На Go Playground можно использовать Go без предварительной установки;
  • Каждая программа Go состоит из функций, что находятся в пакетах;
  • Для вывода текста на экран используется пакет fmt, предоставленный стандартной библиотекой;
  • Пунктуация также важна в языках программирования, как и в естественных языках;
  • В уроке были рассмотрены 3 из 25 ключевых слов Go: package, import и func.

При желании проверить собственные силы, можете выполнить следующее задание:

  • Измените результат вывода, отредактировав текст между кавычками. Пускай, это будет ваше персональное приветствие.
  • Отобразите две строки текста, написав вторую строку кода внутри тела {} функции main. К примеру:
  • Go поддерживает символы любого языка. Выведите текст на китайском, японском, русском или румынском. При необходимости воспользуйтесь переводчиком Google Translate, после чего скопируйте и вставьте полученный текст в Go Playground.
  • Модифицируйте код в Go Playground и нажмите на кнопку Run, чтобы увидеть результат. Если у вас возникли сложности, обновите браузер и посмотрите на оригинальный код.
  • Используйте кнопку Share для получения ссылки на свою программу. Если хотите, можете поделиться результатом с друзьями или сохранить для себя.

Возможный вариант выполнения задания:

Понравилась статья?

Поддержи наш проект, чтобы мы могли создать больше хорошего контента!