¿Es básicamente un diccionario solo una tabla hash?Dictionary = Hash?
También extra: En el código de Ruby "Hash.new {0}" ¿para qué es el "{0}" al final?
¿Es básicamente un diccionario solo una tabla hash?Dictionary = Hash?
También extra: En el código de Ruby "Hash.new {0}" ¿para qué es el "{0}" al final?
Las palabras tabla, diccionario y mapa a menudo se utilizan como sinónimos (en el contexto de estructuras de datos). Un hash table/hash map es un tipo de tabla/diccionario/mapa.
El {0}
es un bloque (función anónima) que ignora su argumento y devuelve el número 0. El bloque dado a Hash.new
se llama para producir un valor predeterminado cuando una clave no se encuentra en el mapa hash.
I.e. si hago h = Hash.new {0}
y luego h["key that does not exist"]
, obtengo 0, en lugar de nil
(que obtendría sin {0}
). Tenga en cuenta que en este caso donde el valor predeterminado es inmutable y no depende de la clave, no necesita usar el formulario de bloque de Hash.new
, puede simplemente hacer Hash.new(0)
para establecer 0 como el valor predeterminado.
Un diccionario simplemente asigna una clave a un valor. Hay muchas formas de lograr esto; una tabla hash es una de ellas.
En Rubí un hash es una clave, almacenar valor
h = Hash.new
h['one'] = 1
h['one'] #=> 1
h['two'] #=> nil
el {0} es un bloque que se evaluará si dónde llamar una clave que no existía, que es un valor por defecto.
h = Hash.new {0}
h['one'] #=> 0
h = Hash.new {|hash,key| "#{key} has Nothing"}
h['one'] #=> "one has Nothing"
Un diccionario es una interfaz conceptual. Una tabla hash es una implementación concreta.
"También bonificación:" - ¿qué gano? Cuchillos de carne? –
un ego más grande ??? –
en realidad, un diccionario tiene sus claves ordenadas. Un hash de ruby no – Mauricio