Подборка объединяет вопросы, отмеченные на этапах интервью в Smartway. Здесь можно понять структуру технической проверки и заранее повторить связанные темы. В подборке чаще встречаются темы: concurrency, backend, context.
Разница между value receiver и pointer receiver При использовании value receiver метод получает копию значения структуры С pointer receiver метод получает указатель на исходную структуру Изменения внутри метода с…
Как в Go обрабатываются nil и вызовы методов на nil-ресивере nil в Go служит нулевым значением для указателей, интерфейсов, слайсов, карт, каналов и функций У метода может быть ресивер-указатель, значение которого в…
Чем статическая типизация Go отличается от утиной В Go: применяется строгая статическая типизация тип переменной определяется при её объявлении ошибки, связанные с типами, компилятор обнаруживает до запуска программы…
Работа со слайсами (Go slices) Удаление элемента по индексу Для этого объединяют два подслайса: s = append(s[:i], s[i+1:]...) В результате формируется новый слайс без элемента с индексом i, а его длина уменьшается.…
** контролируйте длительность операций в Go через context, задавая таймаут и отмену с помощью context.WithTimeout и Done(). Это позволяет ограничивать время выполнения и корректно освобождать ресурсы.
Как эффективнее использовать память в Go? управление памятью при работе горутин и стека: Go применяет динамический стек, благодаря чему уменьшаются накладные расходы эффективное использование срезов и массивов:…
массив имеет фиксированный размер, поэтому его очищают перезаписью элементов нулевыми значениями слайс — динамическая структура, которая ссылается на массив сбросить длину: slice = slice[:0] — элементы логически…
Когда в Go следует применять panic и как это делать правильно? механизм обработки критических ошибок используется при непредвиденных, фатальных ситуациях чаще всего встречается в низкоуровневом коде или при ошибках…
Слайс в Go представляет собой структуру из трёх полей: указателя на массив, длины и ёмкости. Он передаётся как значение: копируется структура слайса, а не весь массив. При таком копировании указатель остаётся тем же,…
Почему context не следует надолго сохранять в структуре? context — объект, который передаёт отмену, дедлайны и значения по цепочке вызовов он не рассчитан на длительное хранение, поскольку привязан к сроку жизни…
Почему линейный поиск может работать неэффективно алгоритм проверяет элементы один за другим сложность поиска — O(n), поэтому время растёт вместе с объёмом данных при работе с большими массивами он становится очень…
структуры, для которых не задано имя типа (inline-объявление) создаются непосредственно в месте применения включают поля, их типы и значения подходят для локальных или одноразовых данных помогают быстро сформировать…