On Sat, Dec 6, 2008 at 4:14 PM, Nelson Fernandez <[EMAIL PROTECTED]> wrote:
> Lo que esta sucediento es que estás manjando el Hash como si fuera un
> Array multidimencional
>
> a = Hash.new('hola')
> puts a[1] => 'hola'
> puts a[1][1] => 108
>
> 108 es el ascii de la letra o
>
Gracias Nelson, pero no estoy seguro que sea el caso, en tu ejemplo
a[1] es un string, por lo tanto el operador [] devuelve el caracter
que está en la posición que indica el índice, pero en el mío, h[1] es
un hash, por lo que el operador [] debería devolver el valor apuntado
por el objeto que paso como índice, que como no existe debería ser en
este caso: {}.
Te paso otro ejemplo que tal vez muestre mejor lo que quiero decir:
h = Hash.new({})
h['a']['b'] = 'c'
p h['a'] => {"b"=>"c"}
p h['a']['b'] => "c"
p h['no existe'] => {"b"=>"c"}
Cuando según la definición de hash, el tercer caso debería devolver
{}, o eso es lo que yo interpreto.
Saludos. Lucas.
_______________________________________________
Ruby mailing list
[email protected]
http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar