Телеграм

Библиотека задач по Go | тесты, код, задания

@go_problems_lib Программирование и разработка
РКН: проверяем Не иноагент
Задачи и тесты по Go для тренировки и обучения.

Учиться у нас: clc.to/4o0_XA

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

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

Наши каналы: https://t.me/proglibrary/9197

Статистика обновлена 14.11.2026 в 21:25 · 5 просмотров страницы · Хотите больше просмотров?

Подписчики6 648 +0 за 1 день
Охват поста810 12% от подписчиков
ERR за месяц12,18%
ERR за 24 часа4,44%

Динамика за 30 дней

Рекламные публикации 1

Все рекламные посты →
Открыть пост ↗
👀 Пройдёт ли утверждение типа int для значения UserID?

Go 1.22+. Что выведет код?

package main

import "fmt"

type UserID int
type Alias = int

func main() {
var x any = UserID(7)
var y any = Alias(7)
_, first := x.(int)
_, second := y.(int)

fmt.Println(first, second)
}


👾 — false true
👍 — true true
🥰 — false false
⚡️ — Паника

Ответ: 👾 — false true.

UserID — отдельный определённый тип. Утверждение x.(int) не выполняет преобразование и возвращает false в форме с comma-ok. Alias — другое имя для int, поэтому второе утверждение успешно.

Документация

➡️ Навигация: База знаний • Задачи • Собеседования • Вакансии

🐸 Библиотека программиста
👁 633 👾 8 ↻ 1 10 ноября

Последние публикации

Все посты канала →
Открыть пост ↗
👀 Какие нулевые поля попадут в JSON с omitempty?

Go 1.22. Что выведет код?

package main

import (
"encoding/json"
"fmt"
)

func main() {
n := 0
item := struct {
Count int `json:"count,omitempty"`
Limit *int `json:"limit,omitempty"`
}{Count: 0, Limit: &n}
data, _ := json.Marshal(item)
fmt.Println(string(data))
}


👾 — {}
👍 — {"count":0}
🥰 — {"count":0,"limit":0}
⚡️ — {"limit":0}

Ответ: ⚡️ — {"limit":0}.

omitempty пропускает поле int с нулём и поле указателя с nil. Limit хранит ненулевой указатель, поэтому поле попадает в JSON со значением 0.

Документация

➡️ Навигация: База знаний • Задачи • Собеседования • Вакансии

🐸 Библиотека программиста
👁 308 👍 3🥰 2👾 2 ↻ 2 сегодня в 09:03
Открыть пост ↗
👀 Остановит ли recover панику при вызове через помощника?

Go 1.22. Что произойдёт при запуске? В вариантах / разделяет строки.

package main

import "fmt"

func helper() any { return recover() }

func main() {
defer func() {
fmt.Println("outer:", recover())
}()
defer func() {
fmt.Println("inner:", helper())
}()
panic("boom")
}


👾 — inner: boom / outer: <nil>
👍 — inner: <nil> / outer: boom
🥰 — inner: <nil> / outer: <nil>
⚡️ — Программа завершится с необработанной паникой

Ответ: 👍 — inner: <nil> / outer: boom.

recover должен вызываться непосредственно отложенной функцией. В helper он возвращает nil, и паника продолжается. Следующая отложенная функция вызывает recover напрямую и перехватывает boom.

Документация

➡️ Навигация: База знаний • Задачи • Собеседования • Вакансии

🐸 Библиотека программиста
👁 450 👍 7👾 2 ↻ 2 вчера в 09:01
Открыть пост ↗
💥 Три IT-курса по цене одного — только до 15 ноября!

Хорошая техническая база - вот что, что помогает разработчику расти и переходить к более сложным задачам.

В Proglib Academy можно забрать такую комбинацию для мощной прокачки за 45 990 ₽:

🧠 Алгоритмы и структуры данных — для развития алгоритмического мышления, решения технических задач и подготовки к собеседованиям.

🐍 Python — для практического программирования, автоматизации и дальнейшего развития в Data Science и AI.

📐 Математика для AI — для понимания математической основы машинного обучения и работы моделей.


➡️ Забирайте три курса, которые лучше всего дополняют ваши текущие знания и профессиональные цели⚡️

Успевайте до 15 ноября включительно 🎁
👁 421 ❤ 1 12 ноября