В отличие от других языков, синтаксис Golang прост, что упрощает работу со структурами данных. Как и любой другой язык, Golang использует массивы в качестве структуры данных. Массивы используются для хранения данных фиксированного объема. Это полезно при жестком кодировании.

Пример добавления данных в массив можно увидеть ниже:

package main
import "fmt"
func main() {
//Array of Ints
    var arrayInt [5]int //declares an array of five elements
    arrayInt[0] = 1 //index element at '0' = 1
    arrayInt[1] = 2 //index element at '1' = 2
    arrayInt[2] = 3 //index element at '2' = 3
    arrayInt[3] = 4 //index element at '3' = 4
    arrayInt[4] = 5 //index element at '4' = 5
    fmt.Println(arrayInt)
//Array of Strings
    var arrayString [5]string //declares an array of five elements
    arrayString[0] = "John" //index element at '0' = John
    arrayString[1] = "Mary" //index element at '1' = Mary
    arrayString[2] = "Antonio" //index element at '2' = Antonio
    arrayString[3] = "Sally" //index element at '3' = Sally
    arrayString[4] = "Mark" //index element at '4' = Mark
    fmt.Println(arrayString)
}
Output: [1 2 3 4 5]
        [John Mary Antonio Sally Mark]

Как показано выше, чтобы объявить массив в Go, вы должны указать тип данных и количество элементов, которые вы хотите включить. Кроме того, индекс массива всегда начинается с нуля, поэтому 0–4 будет включать в себя всего пять элементов массива. Имейте в виду, что любой индекс массива, которому не присвоено значение, будет автоматически равен нулю при работе с целыми числами. При работе со строками значением будет пустое пространство. Это очень простой способ добавления элементов в массив.

Срезы, с другой стороны, могут быть хитрыми. В отличие от массивов, срезы увеличиваются в размере, что означает, что вам не нужно указывать длину.

В приведенном ниже коде показано, как объявить срез:

package main
import "fmt"
func main() {
   type UserInfo struct{
       Name string
       Age int
       Id int
   }
  var info []UserInfo //the variable 'info' is declared as UserInfo
  info = append(info, UserInfo{Name:"John", Age:20, Id:1}) //person1
  info = append(info, UserInfo{Name:"Sally", Age:25, Id:2})//person2
  info = append(info, UserInfo{Name:"Mike", Age:30, Id:3})//person3 
  fmt.Println(info)
}
Output: [{John 20 1} {Sally 25 2} {Mike 30 3}]

В приведенном выше коде показано, как тип UserInfo объявляется как структура, содержащая различное содержимое данных пользователей. UserInfo содержит имя пользователя, возраст и идентификатор. Затем создается переменная с именем info для хранения данных, которые есть у UserInfo. Чтобы установить данные в информацию о переменной, вы должны использовать ключевое слово append, а затем заполнить каждый тип данных, объявленный, как показано выше. Как видите, вы можете продолжать увеличивать фрагмент, чтобы он увеличивался в размерах.

Когда следует использовать любой из них? Массивы следует использовать, когда вы знаете количество данных, которые хотите добавить к чему-либо. Примером может служить хранение всех 32 ваших любимых команд НФЛ в массиве. Срезы следует использовать при обработке данных нескольких пользователей и когда данные не имеют фиксированного размера.