Практика: Основы синтаксиса Go
Онлайн редактор кода для Go
Здесь вы можете попробовать свои силы в программировании на языке Go. Для этого мы предоставляем вам онлайн редактор кода, в котором вы можете написать свой код и запустить его.
❗️ При обновлении страницы код пропадёт, по этому, сохраните свой код куда-нибудь, если он важный.
Задание 1 — Карточка гаджета
Практическое задание №1: Основы Go
⏱️ Примерное время: 15-20 минутСоздайте карточку товара с помощью короткого объявления переменных.
Требования:
- используйте короткое объявление
:= - посчитайте общую стоимость (цена × количество)
- выведите одной строкой через
fmt.Printf
Пример желаемого вывода:
Планшет Xiaomi Pad 7 — 39990.00 ₽ × 11 = 439890.00 ₽
💡 Подсказка
total := price * float64(count)
fmt.Printf("%s — %.2f ₽ × %d = %.2f ₽\n", name, price, count, total)
Задание 2 — Сообщение о заказе
Практическое задание №2: Строки и strings.Builder
⏱️ Примерное время: 15-20 минутСоберите сообщение о заказе через strings.Builder.
Требования:
- используйте
strings.Builder - преобразуйте числа через
strconv.Itoaиstrconv.FormatFloat - желаемый формат:
Заказ №1345 | 12490.00 ₽ | оплачен: да
💡 Подсказка
var builder strings.Builder
builder.WriteString("Заказ №")
builder.WriteString(strconv.Itoa(id))
builder.WriteString(" | ")
builder.WriteString(strconv.FormatFloat(sum, 'f', 2, 64))
builder.WriteString(" ₽ | оплачен: ")
builder.WriteString(status)
fmt.Println(builder.String())
Задание 3 — Байты vs руны
Практическое задание №3: byte, rune и UTF-8
⏱️ Примерное время: 20-25 минутИсследуйте строку с эмодзи и кириллицей.
Требования:
- Выведите четыре значения:
- Длина в байтах:
len(s) - Количество символов:
len([]rune(s)) - Первый символ (как строка)
- Последний символ (как строка)
- Длина в байтах:
💡 Подсказка
runes := []rune(text)
fmt.Printf("Байт: %d, символов: %d\n", len(text), len(runes))
fmt.Println("Первый:", string(runes[0]))
fmt.Println("Последний:", string(runes[len(runes)-1]))
Задание 4 — Цена после скидки
Практическое задание №4: Арифметика и преобразования типов
⏱️ Примерное время: 15-20 минутПосчитайте цену со скидкой и округлите вниз до целых рублей.
Требования:
- преобразуйте цену в
float64 - посчитайте итоговую цену
- преобразуйте результат в
int(отбрасывание дробной части) - выведите в формате:
Было 24990 ₽ → стало 19992 ₽
💡 Подсказка
discounted := price * (1 - discountPercent/100)
finalPrice := int(discounted)
fmt.Printf("Было %d ₽ → стало %d ₽\n", price, finalPrice)
Задание 5 — Бонусный счёт (указатели прямо в main)
Практическое задание №5: Указатели
⏱️ Примерное время: 20-25 минутИзменяйте баланс бонусов через указатель.
Требования:
- создайте переменную
balanceс начальным значением - создайте указатель
p := &balance - начислите бонусы через
*p += … - выведите баланс после начисления
- обнулите через
*p = 0 - выведите финальный баланс
Пример желаемого вывода:
Баланс: 500
После начисления: 800
После обнуления: 0
Задание 6 — Дописываем текст через указатель
Практическое задание №6: Указатель на строку
⏱️ Примерное время: 15-20 минутИзмените строку через указатель.
Требования:
- создайте строку
sс начальным значением - создайте указатель
ps := &s - добавьте текст через
*ps += … - выведите строку до и после изменения
Пример желаемого вывода:
До: Go
После: Go — мой любимый язык
Задание 7 — Отчёт о транзакции
Практическое задание №7: strings.Builder + strconv
⏱️ Примерное время: 20-25 минутСоберите красивый отчёт через strings.Builder.
Требования:
- используйте
strings.Builder - преобразуйте числа через
strconv.Itoaиstrconv.FormatFloat - желаемый формат:
Транзакция #1427 • 6 товаров • 58990.50 ₽
💡 Подсказка
var b strings.Builder
b.WriteString("Транзакция #")
b.WriteString(strconv.Itoa(id))
b.WriteString(" • ")
b.WriteString(strconv.Itoa(items))
b.WriteString(" товаров • ")
b.WriteString(strconv.FormatFloat(total, 'f', 2, 64))
b.WriteString(" ₽")
fmt.Println(b.String())
Задание 8 — Цена с НДС
Практическое задание №8: Константы и арифметика
⏱️ Примерное время: 10-15 минутПосчитайте цену с учётом НДС.
Требования:
- объявите константу
TaxRate - посчитайте цену с НДС:
price * (1 + TaxRate) - выведите обе цены с двумя знаками после запятой через
fmt.Printf
Пример желаемого вывода:
Без НДС: 30000.00 ₽ → С НДС: 36000.00 ₽
Задание 9 — Итоговое: Товар + скидка + отчёт
Практическое задание №9: Итоговое (всё вместе)
⏱️ Примерное время: 25-35 минутОбъедините переменные, указатели, строки и Builder.
Требования:
- переменные через
:= - создайте указатель на цену
p := &price - примените скидку 15%:
*p *= 0.85 - посчитайте общую сумму
- соберите отчёт через
strings.Builder
Пример желаемого вывода:
Курс Go 2026 • после -15%: 25491.50 ₽ • всего за 20 шт: 509830.00 ₽
💡 Подсказка
var b strings.Builder
b.WriteString(name)
b.WriteString(" • после -15%: ")
b.WriteString(strconv.FormatFloat(*p, 'f', 2, 64))
b.WriteString(" ₽ • всего за ")
b.WriteString(strconv.Itoa(count))
b.WriteString(" шт: ")
b.WriteString(strconv.FormatFloat(*p * float64(count), 'f', 2, 64))
b.WriteString(" ₽")
fmt.Println(b.String())
Ошибки компиляции — ваши лучшие учителя. Читайте их внимательно!