在go中,使用map[type]struct{} ,如 :
var files map[string]struct{}
files = map[string]struct{}{}
// cur是mongoDB find 出来的数据,Next(ctx)是一种方法,依次处理
// CosFileModel是一个结构体
for cur.Next(ctx) {
var m CosFileModel
if err := cur.Decode(&m); err != nil {
continue
}
if m.CosFile == "" {
continue
}
files[m.CosFile] = struct{}{}
}
// 这是另一处调用的代码
// f.File对应的就是上面的 m.CosFile
if _, ok := files[f.File]; ok {
continue
}
只需要CosFileModel这个结构体里CosFile字段,用来判断是否有map的key——CosFile,而不在意map的value。
这个方法可以替代数组的indexof判断