
Generics
Type parameters, constraints, comparable, any, генеричні функції, генеричні типи, виведення типів
1Що таке type parameter у Go?
Що таке type parameter у Go?
Відповідь
Type parameter — це змінна типу, що використовується у визначеннях генеричних функцій або типів і оголошується у квадратних дужках. Вона дозволяє писати повторно використовуваний код, який працює з різними типами без жертви type safety. Type parameter інстанціюються конкретними type argument під час використання, що дозволяє компілятору перевіряти узгодженість типів під час компіляції, а не під час виконання.
2Який правильний синтаксис для оголошення простої генеричної функції?
Який правильний синтаксис для оголошення простої генеричної функції?
Відповідь
Правильний синтаксис для оголошення генеричної функції використовує квадратні дужки одразу після імені функції для визначення type parameter. Constraint any дозволяє приймати будь-який тип, подібно до interface{}, але з чіткішою семантикою в контексті generics. Цей синтаксис був представлений у Go 1.18, щоб уможливити генеричне програмування, зберігаючи простоту мови.
3Що представляє constraint 'any' у Go?
Що представляє constraint 'any' у Go?
Відповідь
Constraint any — це псевдонім для interface{}, який представляє множину всіх можливих типів у Go. Він дозволяє type parameter приймати будь-який тип без обмежень, забезпечуючи максимальну гнучкість. Хоча це зручно, використання any означає відмову від специфічної перевірки типів і часто вимагає type assertion для доступу до методів чи властивостей базового типу.
У чому головна різниця між 'any' і 'comparable' як constraint?
Як оголосити користувацький генеричний тип на кшталт stack?
+17 питань зі співбесід
Інші теми співбесід Go
Основи Go
Структури даних Go
Інтерфейси Go
Обробка помилок
Основи goroutines
Channels
Go Modules
HTTP-сервер
HTTP-клієнт
Кодування JSON
Database/SQL
Пакет context
Testing
Патерни конкурентності
Примітиви синхронізації
Веб-фреймворки Go
Проєктування REST API
gRPC
Reflection
Керування пам'яттю
Оптимізація продуктивності
Go Design Patterns
Microservices
Безпека та автентифікація
Docker & Containerization
Kubernetes Basics
Просунутий Go
Розробка CLI
Опануй Go для наступної співбесіди
Отримай доступ до всіх питань, flashcards, технічних тестів, вправ code review та симуляторів співбесід.
Почни безкоштовно