Перейти к основному содержимому

Практика: Основы синтаксиса

Практические задания по основам синтаксиса Go: переменные, типы данных, операторы, указатели.


Онлайн редактор кода для Go

Здесь вы можете попробовать свои силы в программировании на языке Go. Для этого мы предоставляем вам онлайн редактор кода, в котором вы можете написать свой код и запустить его.

❗️ При обновлении страницы код пропадёт, по этому, сохраните свой код куда-нибудь, если он важный.

Задание 1: Переменные и базовые типы

Задание 1: Карточка товара

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


💡 Подсказка

Общая стоимость: total := price * float64(count)

Задание 2: Конкатенация строк через strings.Builder

Задание 2: Сообщение о заказе

Соберите строку с данными заказа, используя strings.Builder и преобразование типов.


💡 Подсказка

Используйте strconv.Itoa(id) и strconv.FormatFloat(sum, 'f', 2, 64)

Задание 3: byte и rune — анализ строки

Задание 3: Анализ строки с эмодзи

Исследуйте строку с русским текстом и эмодзи.


Требования:

  • Выведите длину в байтах (len(str))
  • Преобразуйте в []rune и выведите длину в символах
  • Выведите последний символ через []rune
  • Выведите первый байт как byte
💡 Подсказка

runes := []rune(str)

Задание 4: Арифметические операторы и преобразования

Задание 4: Расчёт скидки

Вычислите цену со скидкой.


Требования:

  • Преобразуйте int в float64
  • Вычислите скидку и итоговую цену
  • Преобразуйте итог обратно в int
  • Выведите исходную, скидку в рублях, итоговую цену

Задание 5: Указатели — изменение значения

Задание 5: Бонусный счёт

Реализуйте функции для работы с балансом через указатели.


Требования:

  • Функция addBonus(b *int, amount int)
  • Функция resetBonus(b *int)
  • Вывод баланса после каждой операции

Задание 6: Указатели и строки

Задание 6: Изменение строки через указатель

Напишите функцию, которая меняет строку по указателю.


Требования:

  • Функция appendText(s *string, text string)*s += text
  • Вывод до и после

Задание 7: Преобразование чисел в строки

Задание 7: Формирование отчёта

Соберите отчёт из чисел через strconv.


Требования:

  • Используйте strconv.Itoa и strconv.FormatFloat(..., 'f', 2, 64)
  • Соберите строку через + или strings.Builder

Задание 8: Указатели на float64

Задание 8: Изменение цены через указатель

Реализуйте функцию для изменения цены.


Требования:

  • Функция increasePrice(p *float64, amount float64)
  • Вывод до и после

Задание 9: Константы и вычисления

Задание 9: Работа с константами

Используйте константы для расчётов.


Требования:

  • Объявите константу TaxRate
  • Вычислите и выведите цену с НДС: priceWithTax := price * (1 + TaxRate)
  • Формат вывода с двумя знаками

Задание 10: Комбинированное — всё вместе

Задание 10: Полный отчёт о товаре

Объедините всё: переменные, строки, преобразования, указатели.


Требования:

  • Переменные через :=
  • Функция applyDiscount(price *float64, percent float64) — уменьшает цену на процент
  • Соберите отчёт через strings.Builder: название, цена после скидки 10%, общая стоимость
  • Выведите отчёт

Дополнительные материалы

После выполнения всех 10 заданий:

  • Поэкспериментируйте с разными значениями
  • Попробуйте разные способы сборки строк
  • Добавьте комментарии к коду
  • Сравните производительность + и strings.Builder
Совет

Ошибки компиляции в Go — ваши лучшие учителя. Читайте их внимательно!

Следующий урок

Управляющие конструкции (условия, циклы, switch).