Какова скорость чтения из массива

«Какова скорость чтения из массива» — вопрос из категории Golang, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Чтение из массива в Go выполняется за константное время O(1), так как доступ к элементам происходит по индексу. Производительность практически идентична работе с массивами в других языках, так как это низкоуровневая операция.

Пример:

arr := [3]int{10, 20, 30}
val := arr[1] // моментальный доступ

Нюансы:

  1. Время доступа не зависит от размера массива
  2. Массивы в Go имеют фиксированный размер (в отличие от срезов)
  3. При выходе за границы - паника
  4. Для больших массивов лучше передавать по указателю, чтобы избежать копирования