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

Привет, мир
Мы начнем с традиционной программы hello world.

Go, как и большинство скомпилированных языков программирования, имеет мало шаблонного кода, связанного с ним. Функция main в пакете main является точкой входа для приложения.
fmt пакет обеспечивает поддержку stdin и stdout. Println, как следует из названия, напечатает переменную и добавит новую строку. Также стоит отметить, что соглашения об именах пакетов состоят из маленьких букв, за которыми следует функция, начинающаяся с заглавной буквы. Это потому, что заглавная буква означает, что переменная и функции являются глобальными областями.
Третье, что мы можем заметить, это то, что Go использует фигурные скобки{} для создания блока, в отличие от Python, который использует отступы.
Запуск скрипта
Чтобы запустить питон, мы обычно делаем:
$ python main.py
Для запуска кода go мы можем использовать:
$ go run main.go
или для создания скомпилированного файла мы можем запустить:
$ go build main.go
Он создаст исполняемый файл main.go , который мы можем запустить как
$ ./main
Соглашения об именах для файла
И python, и go следуют одному и тому же соглашению об именах файлов.
- Все символы в имени файла должны быть строчными.
- И разделены символом подчеркивания
(_), если требуется. - Имя файла, начинающееся с
., не может быть импортировано.
Переменная
В Python нет объявления переменных. Переменная создается, когда мы передаем ей значение в первый раз. Начиная с python3.5 у нас есть type hints, но они не применяются самим интерпретатором Python.

Go — статический язык, поэтому такие типы можно явно объявлять с помощью var keywords. Синтаксис объявления переменной: var variable type = expression.
Сокращенная запись
Как и Python, идите своим путем для объявления и инициализации переменных. Go может определить тип переменной во время инициализации. Приведенное выше объявление имени переменной можно переписать как var name = “World” . Еще лучше использовать сокращенный синтаксис с оператором :=.

Поскольку в Go инициализация и объявление переменных могут находиться в разных строках, в случае, если значение не будет передано, оно примет соответствующий zero value.

Объявление нескольких переменных в одной строке

Многострочное объявление возможно как в Go, так и в Python. Переменные распаковываются обучающей запятой. Количество переменных должно соответствовать количеству аргументов.
Пустой идентификатор
И Python, и Go используют подчеркивание (_) в качестве одноразовой переменной, что означает, что значение игнорируется интерпретатором.

Компилятор Go применяет строгие проверки переменных, которые объявлены, но не используются. Итак, в вашем путешествии по Go вы обязательно столкнетесь с проблемой пару раз.

Константы
Мы используем ключевое слово const для создания константы в Go. Мы можем создавать константы только для примитивных типов, таких как string, символ, логическое значение, целое число и число с плавающей запятой.

В Python нет понятия констант. Мы сохраняем подсказку типа Final и делаем имя переменной заглавным в соответствии с pep8.
Соглашения об именах переменных
Есть несколько соглашений по умолчанию, общих для языков, таких как:
- Имя переменной не может начинаться с пробелов или цифр.
- В имени переменной не может быть пробелов.
- В python мы используем регистр змеи (
snake_case) для переменных иSNAKE_CASEдля констант в качестве соглашения об именах. - В Go мы используем смешанные заглавные буквы как для переменных, так и для констант.
mixedCaseиспользуется для локальной переменной/константыand MixedCaseиспользуется, если переменная/константа экспортируется.