[ad_1]
Как создать многомерный массив в Ruby. Хотя Ruby не предоставляет явной поддержки многомерных массивов, вы можете реализовать ее самостоятельно, если у вас есть базовые знания языка. По сути, вы должны создать «массив массивов», в котором каждый элемент массива содержит еще один массив. Чтобы создать такой многомерный массив в Ruby, вы можете написать метод, используемый для генерации массивов массивов, чтобы код не повторялся.
Создайте многомерный массив в Ruby
Шаг 1
Напишите скелет метода. Этот метод примет несколько аргументов измерений и вернет пустой многомерный массив этих измерений. Например, для массива 10×10 вызовите этот метод mda(10,10):def mda(width,height)end
Шаг 2
Создайте массив элементов ширины.
Шаг 3
Создайте массив элементов высоты для каждого элемента в массиве. Это делает «массив массивов», который будет использоваться как двумерный массив. Чтобы создать пустые массивы определенной длины, используйте конструктор Array.new с длиной в качестве аргумента. Изначально все значения в массиве будут нулевыми.
Шаг 4
Используйте карту! также метод. Карта! Метод перебирает каждый элемент в массиве, запускает блок для каждого и присваивает результат блока элементу массива. Тот же результат может быть достигнут с помощью цикла for, но карта! метод более лаконичен: def mda(width,height)a = Array.new(width)a.map! { Array.new(height)} вернуть конец
Шаг 5
Используйте этот массив с нижним индексом (квадратные скобки []) оператор. Например, если у вас есть массив 10×10 с именем «a» и вам нужен элемент 7,3, вы бы сказали[7][3]: a = mda(10,10)# Заполнить массив значениямиa[7][5] = «строка»[2][9] = 23# Получить значения[7][5]ставит[2][9]
Шаг 6
Воспользуйтесь возможностью «цепочки» вызовов методов в Ruby. Например, метод Array.new возвращает массив. Вы можете связать другой вызов метода с этим, чтобы вызвать метод для возвращаемого массива. Поскольку вы связываете методы и не используете оператор return, вам также не нужно имя переменной: def mda(width,height)Array.new(width).map!{ Array.new(height) }end
Кончик
Рубин очень выразителен. Метод MDA может быть короткой и лаконичной строкой кода. Дополнительные строки и ключевые слова только делают код более сложным, чем он есть на самом деле. Оператор return не нужен в Ruby. Методы и блоки Ruby автоматически возвращают результат последнего оператора, выполненного в методе или блоке.
[ad_2]