Longitud de matriz en Go

Estoy empezando con Go (o Golang), y quería saber cómo obtener el tamaño de una matriz, por ejemplo de tipo [][]uint8.

Intenté usando len, pero me da error.

3
задан 28.12.2016, 03:01
0 ответов

В Go у всех договоренностей, которые создаются, есть определенная и эта длина он делает часть Вашего типа:

var array [10]uint8
var arrayOfArrays [7][3]uint8

В первом случае, переменной array это договоренность 10 элементов типа uint8 и во втором переменная arrayOfArrays это договоренность 7 элементов, где каждый элемент - договоренность 3 элементов типа uint8. Это заявление эквивалентное в:

var arrayOfArrays [7]([3]uint8)

Сейчас, у Go есть встроенная так называемая функция len() что возвращает целое число, эквивалентное длине объекта, который проходит с ним как параметр, если объект - договоренность, возвращает число элементов в этой договоренности. Это означает, что:

len(array)

возврати число элементов договоренности array (10). Для договоренности договоренностей arrayOfArrays (или 'массив', как ты это называешь):

var filas = len(arrayOfArrays)

он возвратит 7, потому что эта переменная - договоренность 7 элементов, где каждые элементы - также другая договоренность, и

var columnas = len(arrayOfArrays[0])

он возвратит 3, в этом случае возвращенная стоимость - число элементов первой договоренности, которая в себе элемент договоренности arraysOfArrays. Если цель состоит в том, чтобы знать, сколько элементов есть в общем количестве у договоренности договоренностей, стоимость - умножение изменчивых линий и колонн. В отличие от других языков, в Go не возможно создавать договоренность элементов, которые были бы договоренностями различных размеров, а следовательно себе уверенно, что число элементов [длины] договоренности договоренностей - умножение числа линий и колонн.

5
ответ дан 03.12.2019, 17:57
  • 1
    Сейчас ошибка, которая у меня есть, - это, переместив это в funció n: –  28.12.2016, 14:38
  • 2
    Сейчас ошибка, которая у меня есть, - это, переместив это в funció n: unc ejemplp (массив [] [] uint8) –  28.12.2016, 14:40
  • 3
    @Aaron, помни, что, переместив аргументы в funció n, в большой mayorí в случаев, só ты это перемещаешь имя переменной, как ejemplo(matriz) –  28.12.2016, 17:07

var a [5][3]int;//заявление массива

len(a); //размер колонн массива

len(a[0]); //размер линий массива

0
ответ дан 03.12.2019, 17:57

Теги

Похожие вопросы