
manager.go//package mainpackage mlib
import "errors"type MusicEntry struct {
Id string
Name string
Artist string
Source string
Type string}
type MusicManager struct {
musics []MusicEntry
}
func NewMusicManager() *MusicManager{
return &MusicManager{make([]MusicEntry,0)}
}
func (m *MusicManager) Len() int{ return len(m.musics)
}
func (m *MusicManager ) Get(index int) (music *MusicEntry,err error){ if index <0 ||index >=len(m.musics){ return nil,errors.New("index out of range")
} return &m.musics[index],nil
}
func (m *MusicManager) Find(t_name string) *MusicEntry{ if len(m.musics) ==0 { return nil
} for _,value := range m.musics{ if value.Name == t_name{ return &value
}
} return nil
}
func (m *MusicManager) Add(music *MusicEntry){
m.musics =append(m.musics,*music)
}
func (m *MusicManager) Remove(index int) *MusicEntry{ if index<0 ||index >=len(m.musics){ &nb