From: Joey Date: 2006-07-25T22:52:52+09:00 Subject: Re: Hash order bug? ------=_Part_82309_8167117.1153835566448 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline No, its just not a feature. You can check http://rubyforge.org/projects/arrayfields if you want a ordered hash. j`ey http://www.eachmapinject.com On 7/25/06, Javier Valencia wrote: > > dblack@wobblini.net wrote: > > > Hi -- > > > > On Tue, 25 Jul 2006, Javier Valencia wrote: > > > >> I have this piece of simple code: > >> > >> ---------------------------------------------- > >> def foo > >> return 5 > >> end > >> > >> a = {:gr => false, :und => false, :det => true, :sta => false, :inv > >> => false} > >> puts a.inspect > >> ---------------------------------------------- > >> > >> when I execute it i get a totally unordered hash: > >> > >> ---------------------------------------------- > >> ruby pro.rb > >> {:inv=>false, :gr=>false, :und=>false, :det=>true, :sta=>false} > >> ---------------------------------------------- > >> > >> Now, i delete the foo function from the code (the foo function don't > >> do nothing at all), and i get a well ordered hash: > >> > >> ---------------------------------------------- > >> ruby pro.rb > >> {:gr=>false, :und=>false, :det=>true, :sta=>false, :inv=>false} > >> ---------------------------------------------- > >> > >> > >> What's happening? all my code is behaving wrong because of that. > > > > > > Hashes are unordered. If you need an ordered collection, you'll need > > to use an array. > > > > > > David > > > > Oh my god, i didn't know it, sorry. Is that a missing feature? > > ------=_Part_82309_8167117.1153835566448--