
Структури даних Go
Arrays, slices, maps, structs, pointers, make vs new, значення nil
1Що таке slice в Go?
Що таке slice в Go?
Відповідь
Slice — це динамічне представлення базового array, яке дозволяє маніпулювати послідовностями елементів змінної довжини. На відміну від array із фіксованим розміром, визначеним під час компіляції, slice може динамічно зростати або зменшуватися завдяки операціям на кшталт append. Ця гнучкість робить його найуживанішою послідовною структурою даних у Go для зберігання колекцій однорідних елементів.
2Яка основна різниця між array і slice в Go?
Яка основна різниця між array і slice в Go?
Відповідь
Фундаментальна різниця полягає в розмірі: array має фіксований розмір, визначений під час компіляції, і є частиною самого типу, тоді як slice має динамічний розмір, який може змінюватися під час виконання. Через це два array різного розміру вважаються несумісними типами, тоді як усі slice одного типу елементів сумісні. Тому slice гнучкіші й частіше використовуються в сучасному коді Go.
3Як створити порожній slice в Go?
Як створити порожній slice в Go?
Відповідь
Літеральний синтаксис із порожніми квадратними дужками, за якими йдуть порожні фігурні дужки, — це ідіоматичний спосіб створити ініціалізований порожній slice. Цей підхід створює slice довжиною 0, але не nil, готовий приймати елементи через append. На відміну від простого оголошення, яке дало б nil slice, ця явна ініціалізація гарантує slice, придатний до негайного використання без ризику несподіваної поведінки під час додавання елементів.
Яку функцію слід використати для ініціалізації slice з певною ємністю?
Що відбувається при додаванні елемента до slice, ємність якого вичерпана?
+17 питань зі співбесід
Інші теми співбесід Go
Основи Go
Інтерфейси Go
Обробка помилок
Основи goroutines
Channels
Go Modules
HTTP-сервер
HTTP-клієнт
Кодування JSON
Database/SQL
Пакет context
Testing
Патерни конкурентності
Примітиви синхронізації
Веб-фреймворки Go
Проєктування REST API
gRPC
Reflection
Керування пам'яттю
Оптимізація продуктивності
Generics
Go Design Patterns
Microservices
Безпека та автентифікація
Docker & Containerization
Kubernetes Basics
Просунутий Go
Розробка CLI
Опануй Go для наступної співбесіди
Отримай доступ до всіх питань, flashcards, технічних тестів, вправ code review та симуляторів співбесід.
Почни безкоштовно