Не попадитесь на накрученные каналы! Узнайте, не накручивает ли канал просмотры или подписчиков Проверить канал на накрутку
Прикрепить Телеграм-аккаунт Прикрепить Телеграм-аккаунт

Телеграм канал «Библиотека задач по Go | тесты, код, задания»

Библиотека задач по Go | тесты, код, задания
1.8K
1.2K
741
45
9.3K
Задачи и тесты по Go для тренировки и обучения.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/ab1d67c2

Для обратной связи: @proglibrary_feeedback_bot

Наши каналы: telemetr.me/proglibrary/9197
Подписчики
Всего
6 684
Сегодня
0
Просмотров на пост
Всего
610
ER
Общий
9.13%
Суточный
7.03%
Динамика публикаций
Telemetr - сервис глубокой аналитики
телеграм-каналов
Получите подробную информацию о каждом канале
Отберите самые эффективные каналы для
рекламных размещений, по приросту подписчиков,
ER, количеству просмотров на пост и другим метрикам
Анализируйте рекламные посты
и креативы
Узнайте какие посты лучше сработали,
а какие хуже, даже если их давно удалили
Оценивайте эффективность тематики и контента
Узнайте, какую тематику лучше не рекламировать
на канале, а какая зайдет на ура
Попробовать бесплатно
Показано 7 из 1 805 постов
Смотреть все посты
Пост от 27.10.2026 12:03
68
0
2
Вызовется ли функция в невыбранной ветке select?

Go 1.22+. Что выведет программа?

package main

import "fmt"

func prepare() int {
fmt.Println("prepare")
return 7
}

func main() {
ch := make(chan int)

select {
case ch <- prepare():
fmt.Println("sent")
default:
fmt.Println("default")
}
}

👾 — Только default
👍 — prepare, затем sent
🥰 — Ошибка компиляции
⚡️ — prepare, затем default

Ответ: ⚡️ — prepare, затем default.

При входе в select выражения каналов и отправляемых значений вычисляются до выбора ветки. Поэтому prepare() вызывается. Канал небуферизированный, а получателя нет: отправка не готова, и выбирается default. Горутин, которые могли бы изменить этот результат, в программе нет.

Правило в спецификации Go

Библиотека задач по Go
⚡ 2
Пост от 26.10.2026 12:03
99
0
1
Можно ли увеличить поле структуры прямо внутри map?

Go 1.22+. Скомпилируется ли программа и что выведет?

package main

import "fmt"

type User struct{ Score int }

func main() {
users := map[string]User{
"ann": {Score: 1},
}

users["ann"].Score++

fmt.Println(users["ann"].Score)
}

👾 — 1
👍 — Ошибка компиляции
🥰 — 2
⚡️ — Паника во время выполнения

Ответ: 👍 — Ошибка компиляции.

Значение структуры, полученное через индексирование map, не предоставляет адресуемое поле для такого изменения. Можно получить копию: user := users["ann"], изменить user.Score и записать структуру обратно: users["ann"] = user. При этом users["ann"]++ для map[string]int — другая операция, она допустима.

Правило в спецификации Go

Библиотека задач по Go
👍 1
🥰 1
Пост от 25.10.2026 20:21
98
0
0
📌 Один курс — хорошее вложение в себя. Два по той же цене — ещё лучше.

В Proglib Academy действует акция: покупаешь один курс, а второй получаешь в подарок.

Например, можно совместить два направления по работе с ИИ:

💥 ИИ для разработчиков — применение нейросетей в повседневной разработке: работа с кодом, тестирование и ревью.

💥 Разработка ИИ-агентов — архитектура агентов и создание собственных AI-решений.

📍 Разница в цене — почти 50 тысяч рублей. Можно освоить больше, не выходя за рамки запланированного бюджета.

А если тебе интереснее Python, алгоритмы, backend или DevOps — выбирай другую пару курсов из каталога.

Акция действует до 31 октября включительно ⏳

⏮️ Пора прокачать свой стек
Пост от 25.10.2026 12:03
118
0
1
Изменит ли range исходный срез структур?

Go 1.22+. Что выведет программа?

package main

import "fmt"

type User struct{ Score int }

func main() {
users := []User{{Score: 1}, {Score: 2}}

for _, user := range users {
user.Score += 10
}

fmt.Println(users[0].Score, users[1].Score)
}

👾 — 11 12
👍 — 11 2
🥰 — 1 2
⚡️ — Ошибка компиляции

Ответ: 🥰 — 1 2.

В user попадает копия очередной структуры. Меняется поле этой копии, а элементы среза остаются прежними. Чтобы изменить исходные значения, можно перебирать индексы и выполнять users[i].Score += 10. Правило новых переменных цикла в Go 1.22 не превращает копию структуры в ссылку.

Правило в спецификации Go

Библиотека задач по Go
🥰 3
👾 1
Пост от 24.10.2026 12:00
99
0
0
Когда append изменит общий массив, а когда создаст новый?

Go 1.22+. Что выведет программа?

package main

import "fmt"

func main() {
a := [4]int{1, 2, 3, 4}

free := a[:2]
limited := a[:2:2]

x := append(free, 9)
y := append(limited, 8)

fmt.Println(a[2], x[2], y[2])
}

👾 — 9 9 8
👍 — 8 8 8
🥰 — 3 9 8
⚡️ — Ошибка компиляции

Ответ: 👾 — 9 9 8.

У free длина 2 и ёмкость 4: append использует исходный массив и записывает 9 в a[2]. У limited длина и ёмкость равны 2. Для добавления элемента нужен новый массив, поэтому y[2] равен 8, а a[2] остаётся 9. Само выражение a[:2:2] копию массива не создаёт.

Правило в спецификации Go

Библиотека задач по Go
👾 5
Пост от 23.10.2026 12:02
145
0
2
Почему два defer видят разные значения одной переменной?

Go 1.22+. Что выведет программа?

package main

import "fmt"

func main() {
n := 1

defer fmt.Println("arg", n)
defer func() {
fmt.Println("closure", n)
}()

n = 2
}

👾 — arg 1, затем closure 2
👍 — closure 1, затем arg 1
🥰 — arg 2, затем closure 2
⚡️ — closure 2, затем arg 1

Ответ: ⚡️ — closure 2, затем arg 1.

Аргумент n для fmt.Println вычисляется при выполнении первого defer и сохраняется как 1. Замыкание читает переменную позднее и видит 2. Отложенные вызовы выполняются в обратном порядке регистрации: сначала замыкание, затем fmt.Println с сохранённым аргументом.

Правило в спецификации Go

Библиотека задач по Go
⚡ 6
Пост от 22.10.2026 20:19
261
0
0
😎 Выбираешь один курс, второй получаешь бесплатно. Баг? Нет, акция!

До 31 октября в Proglib Academy можно выбрать два курса и заплатить только за один.

Например, можно совместить:

💥 ИИ для разработчиков — применение нейросетей в повседневной разработке: работа с кодом, тестирование и ревью.

💥 Разработка ИИ-агентов — архитектура агентов и создание собственных AI-решений.


Вместе курсы стоят 108 000 ₽, но по акции оба обойдутся в 59 000 ₽. Экономия — 49 000 ₽ 🔥

Интересуют Python и ИИ или алгоритмы и архитектура? Можно выбрать любые два курса из каталога.

Акция действует до 31 октября включительно ⏳

⏬ Собрать свой учебный билд
Смотреть все посты