package main
import "fmt"
type queryKey struct {
Name string
Age int
}
type Profile struct{
Name string
Age int
Address string
}
var mapper = make(map[queryKey]*Profile)
func BuildIndex(list []*Profile){
for _, profile := range list{
key := queryKey{
Name: profile.Name,
Age: profile.Age,
}
mapper[key] = profile;
}
}
func queryDate(name string, age int){
key := queryKey{
Name: name,
Age: age,
}
if resulet, ok := mapper[key]; ok {
fmt.Println(resulet);
}else{
fmt.Println("没有找到对应的数据")
}
}
func findDate(list []*Profile, name string, age int){
for _, data := range list{
if(data.Name == name && data.Age == age){
fmt.Println(data);
return
}
}
fmt.Println("没有找到对应的数据")
}
func main() {
list := []*Profile{
{Name: "张三", Age: 23, Address: "cq"},
{Name: "李四", Age: 25},
{Name: "王五"},
}
findDate(list, "张三", 23)
BuildIndex(list);
queryDate("张三", 23)
}
golang:map的多键索引
最新推荐文章于 2022-03-25 15:53:34 发布