Logo
TGCATALOG
Catalog Collections Blog
Golang | Вопросы собесов

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

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

No ratings
46
10.09.2026
46
10.09.2026
No ratings
46
10.09.2026
Safe redirect via bot
О канале

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

Подписчиков 4,710
Тематика Technology
Язык English
Ссылка t.me/easy_golang

We also recommend

Kekaton AI | Voiceover and voice clone
Kekaton AI | Voiceover and voice clone
Bot

AI bot for text-to-speech and voice cloning in Telegram. Create audio using neural network quickly and easily.

Description

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

Latest posts

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 | Вопросы собесов
Subscriber dynamics
+0.0% last 30 days
Current
4,710
Month ago
4,711
Average growth
+0 / day
Updated
16 hours ago

Reviews for channel Golang | Вопросы собесов

Log in to leave a review

Only registered users can share their opinion.

No reviews yet

Be the first to share your impression of this resource!

Similar resources

News tech. AndroidTips, applications, science and tricks of gadgets.

Channel

Tutscodes: a collection of codes, scripts and programming guides.

Channel

Ha ha tunnelFilesA collection of configuration files for Ha Tunnel. VPN, freenet and free internet on Telegram.

Channel
Switch to Light Theme
Home Catalog Collections Blog Login