Cómo crear una matriz multidimensional en Ruby
Ruby no ofrece soporte explícito para arrays multidimensionales, pero puede implementarlos si conoce lo básico del lenguaje. En esencia, debe crear un "array de arrays" donde cada elemento contiene otro array. Para no repetir código, escriba un método que genere esos arrays anidados.
Crear array multidimensional en Ruby
Paso 1: Esqueleto del método
El método tomará argumentos de dimensión y devolverá array multidimensional vacío de esas dimensiones. Ejemplo: para array 10x10, llame mda(10,10):
def mda(width, height)
end
Paso 2: Crear array de ancho (width)
Cree array con width elementos.
Paso 3: Crear array de alto (height) para cada elemento
Para cada elemento del array anterior, cree array de height elementos. Esto forma el "array de arrays" bidimensional. Use Array.new con longitud como argumento para crear arrays vacíos de longitud específica (inicialmente todos nil).
Paso 4: Usar map! para poblar
El método map! itera cada elemento, ejecuta bloque para cada uno y asigna resultado al elemento. Más conciso que bucle for:
def mda(width, height)
a = Array.new(width)
a.map! { Array.new(height) }
return a
end
Paso 5: Usar el array con subíndices []
Ejemplo: array 10x10 llamado "a", elemento [7][3] → a[7][3]:
a = mda(10,10)
# Llenar array
a[7][5] = "una cadena"
a[2][9] = 23
# Recuperar valores
puts a[7][5]
puts a[2][9]
Paso 6: Encadenar llamadas a métodos
Ruby permite encadenar llamadas. Array.new devuelve array; puede encadenar otro método sobre el array devuelto. Al encadenar, no necesita variable intermedia ni return explícito:
def mda(width, height)
Array.new(width).map! { Array.new(height) }
end
Consejo
Ruby es muy expresivo. El método MDA puede ser una sola línea concisa. Líneas y palabras clave extra solo complican código. return no es necesario en Ruby: los métodos y bloques devuelven automáticamente el resultado de la última sentencia ejecutada.
- ·Cómo desinstalar una gema Ruby
- ·Cómo crear un árbol binario en C
- ·Cómo crear y usar listas (arrays) en Python
- ·Cómo crear un gráfico 3D en Excel
- ·Cómo crear una cuenta de correo electrónico: opciones gratuitas y de pago
- ·Cómo crear un banner publicitario en HTML
- ·Cómo crear una cuenta de RocketMail
- ·Cómo crear un archivo en Python
