package data import json "github.com/json-iterator/go" type Skill struct { Id int `json:"id"` SkillType int `json:"skill_type"` RageConsume int `json:"rage_consume"` SkillBuff []int `json:"skill_buff"` } type SkillTable struct { l []*Skill m map[int]*Skill } func (this *SkillTable) load(buf []byte) error { var err = json.Unmarshal(buf, &this.l) if err != nil { return err } this.m = make(map[int]*Skill) for i := range this.l { this.m[this.l[i].Id] = this.l[i] } return nil } func (this *SkillTable) List() []*Skill { return this.l } //func (this *SkillTable) Get(i int) *Skill { // return this.l[i] //} func (this *SkillTable) Find(id int) *Skill { return this.m[id] }