Что важно знать
- Статическая типизация, компиляция в один бинарник.
- Нулевые значения вместо неинициализированных переменных.
- Экспорт — заглавная буква имени.
- Указатели без арифметики; приёмник-указатель для изменения.
Синтаксис, пакеты, структуры и методы, указатели, нулевые значения.
Практика. Сделать консольное приложение учёта задач со структурами, методами и сохранением в JSON.
Войдите, чтобы пройти тест: сданный тест отмечает тему пройденной на карте и в ИПР.
defer откладывает вызов до выхода из функции — при обычном return и при panic. Отложенные вызовы выполняются в порядке LIFO (последний — первым). Аргументы вычисляются сразу в момент defer, а не при выполнении. Через именованные результаты defer может…
Полный разборВсё передаётся по значению — копируется само значение: структура целиком, массив целиком. Чтобы функция изменила объект вызывающего, передают указатель (T, взять адрес — &x). Срезы, мапы и каналы — маленькие дескрипторы, ссылающиеся на общие данные, поэтому…
Полный разбор:= — короткое объявление с выводом типа, только внутри функций; объявляет хотя бы одну новую переменную слева. var — работает и на уровне пакета, позволяет указать тип без значения. Затенение: := во вложенном блоке создаёт новую переменную с тем же именем, и…
Полный разборGo — компилируемый статически типизированный язык с простым синтаксисом, сборщиком мусора и встроенной конкурентностью (горутины и каналы). Компилируется в один статический бинарник, быстро собирается — удобно для сервисов, CLI и инфраструктуры (Docker…
Полный разборЛюбая переменная без явной инициализации получает нулевое значение своего типа: 0 для чисел, "" для строк, false для bool, nil для указателей, срезов, мап, каналов, функций и интерфейсов; у структуры — нулевые значения всех полей.
Полный разборПосле собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.