В отличие от других языков, синтаксис 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 ваших любимых команд НФЛ в массиве. Срезы следует использовать при обработке данных нескольких пользователей и когда данные не имеют фиксированного размера.