Перейти к основному содержимому

О2_Утилиты.Массив2DИзвестногоРазмера

Создаёт двумерный массив (массив массивов) заданных размеров. Корректно обрабатывает нулевые размеры: платформа 1С запрещает создание массива с явно указанным нулевым размером через конструктор Новый Массив(0), поэтому метод снимает это ограничение, возвращая в этом случае пустой массив.

Основной способ вызова — через фасад О2.Утилиты().Массив2DИзвестногоРазмера(...).

Синтаксис​

О2.Утилиты().Массив2DИзвестногоРазмера(Размер1, Размер2)

Параметры​

  • Размер1 — Число — количество строк (длина внешнего массива). Допускается значение 0.
  • Размер2 — Число — количество столбцов (длина каждого внутреннего массива). Допускается значение 0.

Возвращаемое значение​

  • Массив — внешний массив длины Размер1; каждый его элемент — массив длины Размер2. Все ячейки инициализированы значением Неопределено.

Описание​

Метод предназначен для случаев, когда требуется заранее аллоцировать двумерный массив фиксированных размеров — например, под матрицу расстояний между узлами графа, матрицу коэффициентов или таблицу совместимости. Без этого метода каждое такое место требует двух циклов с защитной проверкой нулевой длины.

В коде метод вызывается через фасад О2.Утилиты(), который возвращает общий модуль О2_Утилиты. Основная форма вызова — О2.Утилиты().Массив2DИзвестногоРазмера(...).

Пример​

Заполнение матрицы расстояний между точками через фасад О2.Утилиты().Массив2DИзвестногоРазмера(...):

Расстояния = О2.Утилиты().Массив2DИзвестногоРазмера(Точки.Количество(), Точки.Количество());
Для К = 0 По Точки.ВГраница() Цикл
Для К1 = 0 По Точки.ВГраница() Цикл
Расстояния[К][К1] = ?(К = К1, 0,
Abs(Точки[К1].X - Точки[К].X)
+ Abs(Точки[К1].Y - Точки[К].Y));
КонецЦикла;
КонецЦикла;

См. также​