Як створити багатовимірний масив в Ruby

click fraud protection

Як створити багатовимірний масив в Ruby. Хоча Ruby не надає явної підтримки багатовимірних масивів, ви можете реалізувати їх самостійно, якщо володієте базовими знаннями мови. По суті, ви повинні створити «масив масивів», у якому кожен елемент масиву містить ще один масив. Щоб створити такий багатовимірний масив в Ruby, ви можете написати метод, який використовується для створення масивів масивів, щоб код не доводилося повторювати.

Створіть багатовимірний масив в Ruby

Крок 1

Напишіть скелет методу. Цей метод прийматиме декілька аргументів вимірів і повертатиме порожній багатовимірний масив цих вимірів. Наприклад, для масиву 10x10 викличте цей метод mda (10,10):def mda (ширина, висота) end

Відео дня

Крок 2

Створіть масив елементів ширини.

Крок 3

Створіть масив елементів висоти для кожного елемента в масиві. Це створює «масив масивів», який буде використовуватися як двовимірний масив. Щоб створити порожні масиви певної довжини, використовуйте конструктор Array.new з довжиною як аргументом. Спочатку всі значення в масиві будуть нульовими.

Крок 4

Користуйтеся картою! метод також. Мапа! метод повторює кожен елемент в масиві, запускає блок для кожного і призначає результат блоку елементу масиву. Того ж результату можна досягти за допомогою циклу for, але карта! метод більш стислий: def mda (ширина, висота) a = Array.new (ширина) a.map! { Array.new (висота) }повертає aend

Крок 5

Використовуйте цей масив з оператором індексу (квадратні дужки []). Наприклад, якби у вас був масив 10x10 під назвою «a» і ви хотіли мати елемент 7,3, ви б сказали a[7][3]: a = mda (10,10)# Заповнити масив значеннямиa[7][5] = "a string"a[2][9] = 23# Отримати значенняputs a[7][5]puts a[2][9]

Крок 6

Скористайтеся можливістю «ланцюжок» викликів методів у Ruby. Наприклад, метод Array.new повертає масив. Ви можете зв’язати виклик іншого методу з цим, щоб викликати метод у поверненому масиві. Оскільки ви об’єднуєте методи в ланцюжок, а не використовуєте оператор return, вам також не потрібне ім’я змінної: def mda (ширина, висота) Array.new (width).map!{ Array.new (height) }end

Порада

Рубін дуже виразний. Метод MDA може представляти собою короткий і стислий один рядок коду. Додаткові рядки та ключові слова лише роблять код більш складним, ніж він є насправді. Оператор return не потрібен в Ruby. Методи та блоки Ruby автоматично повертають результат останнього оператора, виконаного в методі або блоці.