Of course! Thank you! I mocked up a full working example here: https://play.golang.org/p/OUtbbAbbUF1
Any idea though how I would keep deletions in sync though? On Wednesday, January 10, 2018 at 3:24:37 PM UTC, Burak Serdar wrote: > > On Wed, Jan 10, 2018 at 7:57 AM, <l...@pinkfroot.com <javascript:>> > wrote: > > I'm trying to come up with a data structure that I can search for map > values > > quickly without having to iterate an entire (and large) map to find a > value. > > > > Essentially I have a map that contains lots of data and the key is the > > primary identifier where most of the lookups go to. This is very quick > to > > lookup and/or fail. I also have some very frequent queries to search > for > > values inside the map. This is slow at the moment as I have to iterate > the > > entire map to look for a value. > > > > What I am trying to do is to create a "shadow" map that has a reference > to > > the pointer. This way when the original is deleted from the primary map > it > > should/will fall off from the shadow map. However as you cannot set a > > struct to nil this doesn't seem to work. > > One way of doing this could be: > > type SomeStruct struct { > Field1 string > Field2 string > ... > } > > type SomeStructMap struct { > f1Map map[string]*SomeStruct > f2Map map[string]*SomeStruct > } > > func (m SomeStructMap) GetByF1(s string) (*SomeStruct,bool) {return > m.f1Map[s]} > func (m SomeStructMap( GetByF2(s string) (*SomeStruct,bool) {return > m.f2Map[s]} > func (m SomeStructMap) Set(x *SomeStruct) { > m.f1Map[x.Field1]=x > m.f2Map[x.Field2]=x > } > > Then use instances of SomeStructMap to store and lookup data. > > > > > https://play.golang.org/p/xUP-LEruwVX > > > > Any ideas on how I could approach this? > > > > Thanks!! > > > > -- > > You received this message because you are subscribed to the Google > Groups > > "golang-nuts" group. > > To unsubscribe from this group and stop receiving emails from it, send > an > > email to golang-nuts...@googlegroups.com <javascript:>. > > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.