-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdata.go
More file actions
51 lines (42 loc) · 952 Bytes
/
Copy pathdata.go
File metadata and controls
51 lines (42 loc) · 952 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
package main
import (
"fmt"
krank "gorank/rank"
)
type dataStruct struct {
userId int
value int64
}
func NewDataStruct(userId int, value int64) *dataStruct {
return &dataStruct{
userId: userId,
value: value,
}
}
// key
func (ts *dataStruct) GetKey() int {
return ts.userId
}
// 比较 > 或者 <
func (ts *dataStruct) Comparep(b krank.BasedataInterface) bool {
bobj := b.(*dataStruct)
return ts.value < bobj.value
}
// 比较 >= 或者 <=
func (ts *dataStruct) Compare(b krank.BasedataInterface) bool {
return ts.Comparep(b) || ts.Equal(b) //一定得>= 或者 <= ,否则Find将失败
}
// 比较 =
func (ts *dataStruct) Equal(b krank.BasedataInterface) bool {
bobj := b.(*dataStruct)
return ts.value == bobj.value
}
// 设置 比较值
func (ts *dataStruct) SetValue(b krank.BasedataInterface) {
bobj := b.(*dataStruct)
ts.value = bobj.value
}
//
func (ts *dataStruct) Write() {
fmt.Println(ts.userId, ":", ts.value)
}