https://github.com/514366607/remap
relationmap
https://github.com/514366607/remap
go index map relation relationmap
Last synced: 4 months ago
JSON representation
relationmap
- Host: GitHub
- URL: https://github.com/514366607/remap
- Owner: 514366607
- License: mit
- Created: 2018-05-19T08:42:09.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2018-12-05T07:19:26.000Z (over 7 years ago)
- Last Synced: 2024-06-20T09:09:05.628Z (almost 2 years ago)
- Topics: go, index, map, relation, relationmap
- Language: Go
- Size: 21.5 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 关系型Map
## 在写map的时候总会遇到要拿下级数据的情况,代码会写得很冗杂,而且lock来lock去的很烦,就直接写一个,虽然interface的效率不太好。
### 其实操作在map_test.go和index_test.go里已经有详细的代码看里面就行
```
package main
import (
"log"
"remap"
)
type student struct {
studentID int // 学员号
name string // 姓名
sex int8 // 性别 1男 2女
age int8 // 年龄
score int8 // 分数
}
func main() {
var hanmeimei = student{
studentID: 1111,
name: "韩梅梅",
sex: 2,
age: 10,
score: 90,
}
var lilei = student{
studentID: 1112,
name: "李雷",
sex: 1,
age: 10,
score: 80,
}
var m remap.Map
m.Store("test", hanmeimei) // 修改操作
d, _ := m.Load("test") // 读取
log.Println(1, d)
// 1 {1111 韩梅梅 2 10 90}
m.Delete("test") //删除
d, _ = m.Load("test") // 读取
log.Println(2, d)
//
// 创建索引
m.Store("hanmeimei", hanmeimei) // 修改操作
m.Store("lilei", lilei) // 修改操作
m.CreateIndex("boys", func(k, v interface{}) bool {
if v.(student).sex == 1 {
return true
}
return false
})
i, _ := m.Index.GetIndex("boys") // 取出索引内容
log.Println(3, i)
// 3 &{{true} {{0 0} 0 0 0 0} {{{0 0} 0 0 0 0} map[]} map[lilei:{1112 李雷 1 10 80}]}
m.Index.DeleteIndex("boys") // 删除索引
}
```