Logo
TGCATALOG
Каталог Подборки Блог
Golang | Вопросы собесов

Golang | Вопросы собесов

Вопросы собеседований по Golang с ответами и объяснениями.

Нет оценок
39
08.09.2026
39
08.09.2026
Нет оценок
39
08.09.2026
Безопасный переход через бот
О канале

Вопросы собеседований по Golang с ответами и объяснениями.

Подписчиков 4,710
Тематика Технологии
Язык Русский
Ссылка t.me/easy_golang

Также рекомендуем

Kekaton AI | Озвучка и клон голоса
Kekaton AI | Озвучка и клон голоса
Бот

AI бот для озвучки текста и клонирования голоса в Telegram. Создавай аудио с помощью нейросети быстро и просто.

Описание

Сборник вопросов, которые задают на собеседованиях Go-разработчикам. Покрыты темы горутин, каналов, интерфейсов, concurrency и стандартной библиотеки. Каждый вопрос сопровождается подробным разбором и примерами кода для глубокого понимания.

Последние посты

Golang | Вопросы собесов
Golang | Вопросы собесов
🔒Открыть пост
и посмотреть медиа
🤔 Зачем нужен foreign key? Foreign key (внешний ключ) — это ограничение в базе данных, обеспечивающее связь между таблицами и целостность данных. Он: - Предотвращает вставку «висячих» записей (без связанных данных). - Позволяет БД контролировать каскадное удаление/обновление. - Делает структуру БД более безопасной и логичной. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
Golang | Вопросы собесов
Golang | Вопросы собесов
🔒Открыть пост
и посмотреть медиа
🤔 Как использовать линтеры (linters)? Линтеры интегрируются в IDE или CI/CD пайплайны. Например, golangci-lint используется для анализа Go-кода. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
Golang | Вопросы собесов
Golang | Вопросы собесов
🔒Открыть пост
и посмотреть медиа
🤔 Что такое пустой интерфейс? Это интерфейс, который не содержит методов. Поскольку интерфейсы в Go определяют поведение, которое тип должен реализовать, пустой интерфейс, не имеющий методов, автоматически реализуется всеми типами. Это делает пустой интерфейс универсальным контейнером для значений любого типа. 🚩Основные характеристики 🟠Универсальность Пустой интерфейс может содержать значение любого типа, потому что все типы в Go автоматически реализуют пустой интерфейс. 🟠Использование Пустой интерфейс широко используется для создания обобщенных (generic) структур данных, функций и методов, которые могут работать с данными любых типов. 🚩Примеры использования 🟠Присваивание значений разного типа Пустой интерфейс может использоваться для хранения значений различных типов в одной переменной. package main import "fmt" func main() { var i interface{} i = 42 fmt.Println(i) // Output: 42 i = "hello" fmt.Println(i) // Output: hello i = true fmt.Println(i) // Output: true } 🟠Обобщенные функции Пустой интерфейс позволяет создавать функции, которые могут принимать параметры любого типа. package main import "fmt" func printValue(v interface{}) { fmt.Println(v) } func main() { printValue(42) printValue("hello") printValue(true) } 🟠Универсальные структуры данных Пустой интерфейс используется для создания структур данных, которые могут хранить значения различных типов. package main import "fmt" func main() { var values []interface{} values = append(values, 42, "hello", true) for _, v := range values { fmt.Println(v) } } 🟠Обработка разнородных данных Пустой интерфейс используется для обработки данных различных типов, например, при парсинге JSON. package main import ( "encoding/json" "fmt" ) func main() { jsonData := `{"name": "Alice", "age": 30}` var result map[string]interface{} json.Unmarshal([]byte(jsonData), &result) fmt.Println(result) } 🟠Проверка типа и приведение типа При работе с пустым интерфейсом часто возникает необходимость проверить тип хранимого значения и привести его к конкретному типу. Это можно сделать с помощью утверждения типа (type assertion) или конструкции switch. 🟠Утверждение типа Утверждение типа позволяет проверить и преобразовать значение пустого интерфейса к конкретному типу. package main import "fmt" func main() { var i interface{} = "hello" s, ok := i.(string) if ok { fmt.Println("String:", s) // Output: String: hello } else { fmt.Println("Not a string") } n, ok := i.(int) if ok { fmt.Println("Integer:", n) } else { fmt.Println("Not an integer") } } 🟠Использование `switch` для проверки типа Конструкция switch позволяет обрабатывать значения различных типов, хранящиеся в пустом интерфейсе. package main import "fmt" func printType(i interface{}) { switch v := i.(type) { case string: fmt.Println("String:", v) case int: fmt.Println("Integer:", v) case bool: fmt.Println("Boolean:", v) default: fmt.Printf("Unknown type: %T\n", v) } } func main() { printType("hello") // Output: String: hello printType(42) // Output: Integer: 42 printType(true) // Output: Boolean: true printType(3.14) // Output: Unknown type: float64 } Ставь 👍 и забирай 📚 Базу знаний
Golang | Вопросы собесов
Golang | Вопросы собесов
🔒Открыть пост
и посмотреть медиа
🤔 Как устроен runtime в Go? Go runtime — это встроенная среда выполнения, которая управляет памятью, потоками, сборкой мусора и планировщиком горутин. Он делает Go удобным для многопоточного и высоконагруженного программирования без необходимости вручную управлять потоками. 🚩Основные компоненты Go `runtime` Горутины (goroutines) — лёгкие потоки, управляемые Go. Планировщик (scheduler) — распределяет горутины по потокам ОС. Модель памяти — управление стеком и кучей. Сборщик мусора (GC) — автоматически очищает неиспользуемую память. Syscalls — взаимодействие с ОС. 🚩Горутины и планировщик (scheduler) Горутины легче, чем потоки ОС: Go может запускать миллионы горутин, а планировщик (M:N) распределяет их по потокам ОС. Go использует M:N-модель, где: - M — системные потоки (OS threads). - N — горутины (goroutines). - P — процессоры (logical processors) — управляют выполнением горутин. P привязан к M, а G (горутины) распределяются между `P` динамически. Это позволяет Go эффективно использовать CPU без ручного управления потоками. Goroutine (G1, G2, G3, ...) ↓ Scheduler → P (Processor) → M (OS Thread) → CPU 🚩Управление памятью и стеком Стек (stack) в Go динамический — он начинается с 2 KB и увеличивается при необходимости. Если стек заполнен, Go автоматически расширяет его. В отличие от C, Go не требует malloc/free, так как есть GC (garbage collector). 🚩Сборщик мусора (Garbage Collector) Go использует автоматический сборщик мусора, который: Работает параллельно с программой Минимизирует паузы (low-latency GC) Очищает неиспользуемые объекты из кучи import "runtime" runtime.GC() // Принудительный запуск сборщика мусора (обычно не нужно) Ставь 👍 и забирай 📚 Базу знаний
Golang | Вопросы собесов
Golang | Вопросы собесов
🔒Открыть пост
и посмотреть медиа
🤔 Как можно слить два слайса? Слияние двух слайсов выполняется с помощью append: 1. Оператор ... разворачивает элементы второго слайса, добавляя их к первому. 2. Новый слайс может использовать новую память, если ёмкость исходного недостаточна. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
Golang | Вопросы собесов
Golang | Вопросы собесов
🔒Открыть пост
и посмотреть медиа
🤔 Как расшифровывается аббревиатура ACID? ACID – это принципы целостности транзакций в базах данных: - A (Atomicity) – транзакция либо выполняется полностью, либо не выполняется вовсе. - C (Consistency) – после транзакции БД остается в согласованном состоянии. - I (Isolation) – параллельные транзакции не влияют друг на друга. - D (Durability) – данные сохраняются даже в случае сбоя системы. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
Golang | Вопросы собесов
Golang | Вопросы собесов
🔒Открыть пост
и посмотреть медиа
🤔 Через какой канал возможна проверка работы горутины? В Go для проверки работы горутины часто используют каналы. Они позволяют передавать данные между горутинами и могут использоваться для сигнализации о состоянии выполнения горутины. 🚩Основные способы проверки работы горутины через каналы 🟠Односторонний канал для завершения горутины Горутина может отправлять сигнал (например, true) в канал, чтобы уведомить о своем завершении. func worker(done chan bool) { fmt.Println("Работа началась...") time.Sleep(2 * time.Second) // Имитация работы fmt.Println("Работа завершена!") done
Golang | Вопросы собесов
Динамика подписчиков
+0.0% за 30 дней
Текущие
4,710
Месяц назад
4,711
Средний рост
+0 / день
Обновлено
13 часов назад

Отзывы о канале Golang | Вопросы собесов

Авторизуйтесь, чтобы оставить отзыв

Только зарегистрированные пользователи могут делиться своим мнением.

Пока нет отзывов

Станьте первым, кто поделится своим впечатлением об этом ресурсе!

Похожие ресурсы

Synapse News: новости новых технологий нейросетей и ключевых событий в мире ИИ. Свежая информация для энтузиастов.

Канал

Технические обновления, премиум аккаунты, инструменты и бесплатные ставки на спорт.

Канал

Официальный канал Microsoft с новостями, обновлениями Windows, Office и облачных сервисов. Актуальная информация о продуктах и технологиях.

Канал
Переход на светлую тему
Главная Каталог Подборки Блог Вход