2011-05-23 20 views

Respuesta

27

De Rubí-Doc:

Arrays están ordenados, colecciones enteros indexados de cualquier objeto. La indexación de matrices comienza en 0, como en C o Java. Se supone que un índice negativo es relativo al final de la matriz, es decir, un índice de -1 indica el último elemento de la matriz, -2 es el penúltimo elemento de la matriz, y así sucesivamente. Mire here para más.

A Hash es una colección de pares clave-valor. Es similar a una matriz, excepto que la indexación se realiza mediante claves arbitrarias de cualquier tipo de objeto, no como un índice entero. Los hashes enumeran sus valores en el orden en que se insertaron las claves correspondientes.

Los valores hash tienen un valor predeterminado que se devuelve al acceder a claves que no existen en el hash. Por defecto, ese valor es nulo. Mire here para más.

8

Una matriz es una lista ordenada de cosas: a, b, c, d

Un hash es una colección de pares clave/valor: john tiene un Peugeot, Bob tiene un Renault, Adam tiene un vado.

+0

¿Eso quiere decir Ruby Array = PHP Indexed Array y Ruby Hash = PHP Associative Array? – emurad

+0

Me gusta. Me las he arreglado para evitar hacer algo lo suficientemente complicado con PHP como para requerir cualquier tipo de arreglo desde los 90s. – Quentin

10

Arrays: Las matrices se utilizan para almacenar colecciones de datos. Cada objeto en una matriz tiene una clave única asignada a ella. Podemos acceder a cualquier objeto en la matriz usando esta clave única. Las posiciones en una matriz comienzan desde "0". El primer elemento se encuentra en "0", el segundo en la 1ª posición, etc.

Ejemplo: Pruebe lo siguiente en - irb.

bikes = Array.new 
bikes = %w[Bajaj-Pulsar, Honda-Unicorn, TVS-Apache, Yamaha, Suzuki] 

Agregaste 4 elementos en la matriz.

puts bikes[3] 
Yamaha, 

Añadir un nuevo elemento a la posición 5.

bikes[5] = "Hardly Davidson" 

hashes: Al igual que los arrays, hashes también se utilizan para almacenar datos. Hashes apunta un objeto a otro objeto. Considere la posibilidad de asignar un cierto "significado" a una cadena. Cada vez que refiere esa cadena, se refiere a su "significado".

Ejemplo:

bikes = Hash.new 
bikes = { 
'Bajaj' => 'Pulsar 220, Pulsar 200, Pulsar 180 and Pulsar 150', 
'Honda' => 'Unicorn, Shine and Splendor', 
'TVS' => 'Apache, Star City, and Victor' 
} 

probar este ahora:

bikes['Bajaj'] 

Se obtiene => "Pulsar 220, Pulsar 200, Pulsar 180 y Pulsar 150"

0

Los dos términos se " hashed "juntos estos días.Me que así es como va:

Un "control" tendrá clave -> pares de valores:

(top -> tshirt, bottom -> shorts, feet -> shoes)

Y un "array" tendrá típicamente un índice:

([0]tshirt, [1]shorts, [2]shoes)

Pero, correcto o incorrecto, verá cosas con pares clave -> llamados "matrices", también.

Creo que la diferencia depende principalmente de cuándo y cómo desea utilizarlos. No tendrás problemas para llamar a un array un hash, o viceversa, pero debes saber la diferencia.

Cuestiones relacionadas