Может кто-нибудь скажет мне, как объявить новый экземпляр двумерного массива? Большинство языков использует что-то вроде
array = Array.new[2][2]
Я не знаю, как это сделать в Ruby.
Справка Pls...
Может кто-нибудь скажет мне, как объявить новый экземпляр двумерного массива? Большинство языков использует что-то вроде
array = Array.new[2][2]
Я не знаю, как это сделать в Ruby.
Справка Pls...
Вы можете сделать:
width = 2
height = 3
Array.new(height){Array.new(width)} #=> [[nil, nil], [nil, nil], [nil, nil]]
Чтобы объявить массив 2d в ruby, используйте следующий синтаксис с значением инициализации
row, col, default_value = 5, 4, 0
arr_2d = Array.new(row){Array.new(col,default_value)}
=> [[0, 0, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 0]]
Мы можем выполнить любой уровень вложенности, например, для 3d-массива (5 x 4 x 2): вы можете передать блок для инициализации массива в большинстве внутренних массивов
z = 2
arr_3d = Array.new(row){Array.new(col){Array.new(z){|index| index}}}
=> [[[0, 1], [0, 1], [0, 1], [0, 1]],
[[0, 1], [0, 1], [0, 1], [0, 1]],
[[0, 1], [0, 1], [0, 1], [0, 1]],
[[0, 1], [0, 1], [0, 1], [0, 1]],
[[0, 1], [0, 1], [0, 1], [0, 1]]]
Теперь вы можете получить доступ к его элементу, используя оператор [], например arr_2d [0] [1], actually its array of arrays
Вы можете объявить многомерный массив в Ruby с помощью:
Array.new(Number_of_ROWs){Array.new(Number_of_COLUMNs)}
Как использовать этот синтаксис
Поясним это, используя вышеприведенный пример, т.е. array = Array.new[2][2]
.
Итак, в этом примере мы должны объявить пустой многомерный массив с 2 строками и 2 столбцами.
Давайте начнем реализацию нашего синтаксиса,
array = Array.new(2){Array.new(2)}
Теперь у вас есть array
с 2
строками и столбцом 2
со значениями nil
.
Теперь переменная array
содержит [[nil, nil], [nil, nil]]
, которая рассматривается как empty multidimensional array
или nil value multidimensional array
.
Вы также можете инициализировать передачу значения:
Array.new(3) { Array.new(3) { '0' } }
Выход:
[
["0", "0", "0"],
["0", "0", "0"],
["0", "0", "0"]
]
просто: array = Array.new(8, Array.new(8))