Часть 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 используется, если переменная/константа экспортируется.

Рекомендации