Определение массивов
Студентам, которые использовали PHP, должно быть очень ясно, независимо от того, насколько сложный формат данных может быть выражен массивами, в него можно подключить любой тип данных, это необходимая часть работы, использование простое, простота в использовании просто ненормальна.
$array = [1,'name', ['sex'=>'man'];
В языке Go массивы представляют собой непрерывную область памяти фиксированной длины, что полностью соответствует концепции языка Си. При объявлении массивов мы должны сначала определить длину массивов, а элементы в массивах могут использовать только один тип, heartache, мы больше не можем хранить данные по желанию.
array := [3]int{1, 2, 3}
Это определения массивов на языке Go. [3]
Представляет массив длиной 3, int
Это тип элемента в массиве и элемент в фигурных скобках. Помните, что номер и тип элемента должны соответствовать предыдущему утверждению, иначе будет сообщено об ошибке. В дополнение к этому подходу в PHP также существует метод динамического присвоения, код которого выглядит следующим образом.
$array = []; $array[0] = 'name'; $array[1] = 1; print_r($array); //output Array ( [0] => name [1] => 1 )
Язык Go также может это сделать, но не стоит так много думать о хранении элементов разных типов данных (на самом деле выхода нет, объясняется в следующей статье). Вы можете объявить массив с помощью var, а длина и тип массива определяются заранее. Затем вы можете присвоить значения в соответствии с индексами массива. Вам не нужно присваивать значения каждому индексу, но помните, что индексы не могут выходить за рамки, иначе вы будете сообщать об ошибках.
var array [3]string array[0] = "name" array[1] = "sex" fmt.Print(array) //output [name sex ]
Каждый раз, когда вы объявляете массив, вы должны подсчитывать количество элементов. Это слишком куриные ребрышки, чтобы писать в средних скобках. Этого нельзя ожидать от Go. Конечно же, вы можете им воспользоваться. ...
Метод, позволяющий опустить заключенные в квадратные скобки значения, чтобы компилятор автоматически определял элементы в массиве.
array := [...]string{"a", "b", "c", "d"} fmt.Print(array) //output [a b c d]
Обход массивов
Массив был определен, см. раздел “Как пройти” в PHP через foreach
Прохождение.
$array = ["a", "b", "c", "d"]; foreach($array as $k => $v) { echo $v; } //output abcd
Go написан очень похожим образом, с помощью диапазона
Пройдитесь по нему, но грамматика выглядит немного странно.
array := [...]string{"a", "b", "c", "d"} for k, v := range array { fmt.Print(k, v) } //output 0a1b2c3d
Переменные, которые не используются в Go, будут сообщать об ошибках при компиляции, поэтому K не может использоваться во время обхода. Как решить проблему, при которой переменная K не используется? На самом деле вы можете использовать встроенные символы Go _
Для замены переменной k, то есть отказаться от присвоенного в данный момент значения.
array := [...]string{"a", "b", "c", "d"} for _, v := range array { fmt.Print(v) } //output abcd
Перехват массивов
Перехват массива проходит через функцию PHP array_slice
, следующий код начинается со второго элемента массива, перехватывающего два элемента.
$array = [1, 2, 3, 4, 5]; print_r(array_slice($array, 1, 2)); //output Array ( [0] => 2 [1] => 3 )
В Go проще напрямую извлекать данные между вторым и четвертым элементами. Стоит отметить, что извлеченные данные больше не являются массивом, они называются срезом. Помните, что часть, вырезанная из массива, называется срезом. Самое простое различие между массивом и срезом заключается в том, что массив должен четко указывать размер, и срез не нужно разрезать. Да, массивы передают значения, а срезы передают адреса. Но пока это все еще массив.
array := [...]int{1, 2, 3, 4, 5} fmt.Print(array[1:3])
Добавление массивов
Добавьте новый элемент в массив в PHP, чтобы использовать функцию array_push
.
$array = [1, 2, 3, 4, 5]; array_push($array, 6); print_r($array); //output Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 )
Используйте в функции Go добавить
, обратите внимание, что на самом деле это добавление среза, а не массива.
array := []int{1, 2, 3, 4, 5} array = append(array, 6) fmt.Print(array) //output [1 2 3 4 5 6]
Удаление элементов массива
Удаление элементов массива в PHP очень просто и просто отменить
Следующий код удаляет второй элемент.
$array = [1, 2, 3, 4, 5]; unset($array[1]); print_r($array); //output Array ( [0] => 1 [2] => 3 [3] => 4 [4] => 5 )
В частности, Go не предоставляет собственный метод удаления, а использует только характеристики срезов. Мы определяем индекс удаленного элемента как 1, а затем объединяем элементы перед 1 с элементами за 1, чтобы отфильтровать первый элемент. Это кажется немного спекулятивным. Я не знаю, почему мы не предоставляем функцию. Операция.
index := 1 array := []int{1, 2, 3, 4, 5} array = append(array[:index], array[index+1:]...) fmt.Print(array) //output [1 3 4 5]
вышесказанное-это разница между PHP и Go в массивах. Заинтересованные студенты могут самостоятельно изучить мои последующие статьи или обратить на них внимание.