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

Responder a