Перейти к основному контенту

Mock-собеседование со студентом курса Golang

Из интересного/в заметки/запомнить/повторить:

  1. Как устроены строки в Go. Как аппендить/менять строку ?
    1. strings.Builder
    2. Как работает метод Grow ?
    3. Copy On Write
  2. Как устроены мапы ?
  3. В чем отличие слайса от массива ?
    1. Можно ли массиву из 5 элементов присвоить массив из 6 ? Нет, это разные типы данных
    2. Где аллоцируется слайс ? Или в стеке или в куче. Когда аппендим слайс - на куче.
    3. Почему append возвращает слайс? Переприсвоить нужно если была новая аллокация.
    4. Динамический массив. Какая сложность удаления из начала? Асимптотическая сложность - линейная.
    5. Как за константное время удалить первый элемент массива при этом порядок элементов не важен ? Свопнуть первый с последним и удалить последний.
  4. Как хранить деньги в Go ?
    1. Структура: рубли и копейки отдельно
    2. Целочисленно: хранить в копейках
    3. Побайтово: 2 байта рубли, 2 байта копейки
    4. Float не берем так как могут быть аномалии при вычислениях из-за потери точности